What I learned this week: Providers & Self-Signed Certificates

I would say that about once a month I have a client or coworker sending me an email that looks like this and asking “what do I do?”

SelfSignedCert has expired
SFDC Expired Certification Notification

I remember getting my first one of these and panicking, and the documentation available for admins with little knowledge of single sign-on is poor. I am pretty sure that we have all found the answer via the Answers section of Salesforce’ Help, as opposed to actual documentation.

I have kept a link on hand to share for just this occasion (it’s here, in case you need it).

Fast forward a few years, and I’m studying security and identify more in-depth than I have in the past, and much like data skew, that involves learning the correct terms for what used to sound like jargon.

As the link above to Salesforce’s help article states, this Self-Signed certificate is most commonly used for Single Sign-On settings, but…what does that mean? As with anything else, stating the purpose or cause of something doesn’t always answer a person’s question. Many people much smarter than me have rightly pointed out that if you cannot explain a concept to a child, you do not truly understand that concept. And Salesforce’s Help Articles aren’t always great for that level of explanation.

So let’s start with the basics: Single Sign-On.

If you work for a company in an office, you may already experience this everyday. You log into your computer, and doing so logs you into other company services – an extranet, your inbox, etc. To varying degree, the idea is in the name – you sign in once to multiple platforms.

Ultimately this works because there are two entities working together to allow this to happen.

The Service Provider is the system you’re being logged into secondarily – let’s say JIRA. This is the platform that is requesting your login credentials. Normally this request looks like a login screen, but for single sign-on the whole point is that you bypass that screen. So instead of asking YOU, it asks the system you’re logging in through.

This initial system is the Identity Provider. It is helpfully passing along your credentials to the system that needs the information.

Salesforce, as you can imagine, can be both. And the self-signed certificate is sort of like your global permission slip. And like a permission slip it needs to be updated every once in a while.

“But I don’t have single sign-on enabled!” you cry.

Well sure, that makes sense. That means that Salesforce may not be a Service Provider in your org.

Have you installed any connected apps, though? Many connected apps walk you through a setup process that includes a handy UI that takes on the heavy lifting of setting up your API connection. During this process, some of those apps may create a certificate, which you’ll see by reviewing your connected apps link to that certificate. Sometimes these will take care of themselves – the third party companies you’re working with KNOW about this, and they plan accordingly, but at the least, you’ll know.

And if you’ve enabled Salesforce as an Identity Provider, even if you’re not using it that way…well, there you go.

Long story short: if you don’t remember setting this up, it’s very unlikely to cause issues, but it’s also very easy to update. Bookmark that link, and next year when you get that email, you’ll be ready.

 

What I learned this month: Adopting owned pets

In February we had crazy cold weather here in Michigan – not as bad as some places, but cold enough that when I looked outside one morning and saw a cat wandering through the snow, I knew I had to put something out for it. We found an old cat carrier downstairs, put some old towels in it, and put it out on the front porch near the garage access door, to keep it out of the wind. We put out some old cat food that our picky eaters wouldn’t touch anymore.

The next day the food was gone, so we replenished it.

For the month of February we had about five or six neighborhood cats come and go regularly. We didn’t always see them. Sometimes it was just a mass of paw prints in the snow around the food bowl that was now miraculously empty. We named all of the cats, but our most common visitors were:

  • Tux – a lifelong neighborhood cat, the roughest guy on the block
  • Shadow – a small, polydactyl black cat
  • Mandarin – a small orange tabby, to whom we assigned Most Likely to be Trapped Twice With Food
  • Flerken – a tiny (seriously tiny) gray tabby, who got very pregnant at some point and disappeared for a month or so

This continued into March, as the cold clung to the area. By April, we were down to two regular visitors and one permanent tenant.

We had long suspected that Shadow had been, at one point, indoors. She was quick to trust us, liked to be around us, and seemed generally less adapted to being outdoors. By May, she was happily playing with us on the porch, rubbing our legs, letting us pet her.

I was quickly infatuated. I mean…a tiny black cat. Polydactyl. I never stood a chance.

As summer continued, we sometimes saw Tux, but ultimately Shadow was the only one left, and she made it clear she had adopted us. She lived on our porch. She had regular feeding times. I wanted to bring her inside, and the long process started in late June.

For those of you uninitiated in the cat world – cats are NOT easy to integrate with an existing colony of cats. While we only had two, they were still basically a colony. And that’s the least of potential issues.

FIV, Feline Immunodeficiency Virus, is one major concern. Most commonly spread via bites from infected cats, it’s similar to HIV. Cats infected with FIV can live normal lives, so long as they avoid infections, especially from major concern #2 – Feline Leukemia. Shadow herself does not fit the bill of a common carrier; because FIV is most commonly passed via a bite, outdoor males are the must susceptible. But she was outside with males, and it was certainly possible that she would have gotten it.

Concern #2, Feline Leukemia (FeLV) is also transmitted via bites, but it can ALSO be transmitted via normal behaviors, like mutual grooming.

House cats are usually vaccinated against these viruses, and they are at less risk most of the time, being kept inside with other cats that have been vaccinated.

But before bringing Shadow inside, we needed to be sure. We had gained her trust enough for me to pick her up, and on July 1, I was able to put her in a carrier and take her to the vet.

We had a lot to check on, so I wasn’t too surprised when they whisked her away to the back and 10 minutes rolled by. 15. 20. At which point the vet returned to tell me that they had found a microchip and were tracking down her owner.

It had always been a possibility, of course.

What I had not considered was that the owner would be found and would agree that, since we had been caring for her for the past 6 months, she was likely better off staying with us. So on July 1, I came home with a new cat.

Test results started coming in.

  • No FIV
  • No FeLV
  • We started her on a dewormer, and by the time we were able to get a sample to the vet, she was free of those, too

And I went through the process of transferring her microchip data to us. That was an exercise, but it was much easier than I thought it would be.

So now here we are, outnumbered and loving it.

I have always believed that we are chosen by our furry friends and not the other way around, and I think this past month has simply proven that.

 

 

What I learned this week: Airport Runway Capacity

Over the past year, I have flown to and from New York 7 times. That doesn’t seem like a very large number unless, like me, you prefer the comforts of home and Electric Hero subs from a few blocks away.

Being in Grand Rapids, my direct flight options are a little bit limited. Specifically I can go to Newark, or I can go to LaGuardia. Or I can do a multi-leg journey to JFK. Since interviewing at Arkus, I’ve chosen LGA every time except one time going to Newark and questioning my life choices the entire time.

LaGuardia has been undergoing MASSIVE reconstruction since I started flying out there in 2016, and it has made traveling through the place a greater headache each time. If the standard traffic weren’t enough, you now have to compete against road closures, construction zones, and entire areas of the airport being suddenly inaccessible after they were there two months ago. Keeps me on my toes, that’s for sure.

On my last visit, I couldn’t help but wonder, sitting at a standstill in a line of cars, waiting to exit the airport grounds, and looking at brightly colored signs happily declaring that “a better LaGuardia is coming!” just how long this could possible go on. What sort of purgatory are collectively experiencing? So I Googled it, and apparently I’m not the first one to do this, since the suggestion was immediate.

2022. By the way. 

The part that intrigued me…that’s not fair. It was actually fascinating. The original airport was built in the 1920s, which blew my mind because…did Queens need an airport then? Apparently. The next terminal was built in the 60s, then then 80s, and finally the 90s, and so they ended up with this Tetris kind of place. Not the point.

The part that REALLY piqued my interest was a line toward the end that they are going to add 2 miles of runway, which will help increase the airport’s capacity and decrease some of the issues they have with delays. (Did I mention that I read this while my flight was delayed by over an hour? Yeah. So at least I could understand the root cause.)

What does that have to do with anything, though? How would two miles really have an impact?

As it turns out, this is a Thing. Like an FAA thing. They produce semi-regular Airport Capacity Profiles (last updated in 2014) that determine, based on things like runway space and layout, just how many flights any given airport has actual capacity for. Specifically these reports identify the maximum capacity within a single hour of operation. These overall capacity reports are then broken down by things like weather conditions (visual, marginal, and instrument), realistic operational conditions, and even external factors that may have improved capacity since the last overview.

And you bet they have one for LaGuardia. I read it. But it didn’t quite explain how the two miles of runway would improve performance, so I had to keep looking.

Did you know StackExchange has a whole Aviation subdomain?

LaGuardia currently operates 22 arrival runways and 13 departure runways. Adding two miles of space to increase the number could have a positive effect on the capacity of the airport, but adding runways alone does not solve the problem. For instance, depending on the layout of the runways – parallel or perpendicular – you may have better capacity when the weather is cooperating (parallel) or more options and better sustained capacity when weather is less than ideal (perpendicular).

The mix of aircraft sizes could have an impact. If a very large, heavy aircraft lands, it produces more wake turbulence than a smaller craft, so having a larger variety could mean smaller planes have to wait longer.

The sequencing of arrivals and departures – how many planes are arriving vs. leaving? Will we have room for them? Better get that right.

Sequencing across airports – LaGuardia is in what’s considered the NY/NY/PHL airspace, which supports flights to LGA, JFK, EWR, and PHL. And as it turns out, big freaking flying machines need room to maneuver, so it’s not just the flights into and out of LaGuardia that need to be considered.

Runway exits. Wind strength in the area. Noise constraints. Lateral separation. So. Many. Things.

By the time I read through the capacity report, learned from the experts on Stack Exchange, and took a moment to consider all of the other things going on around a tarmac, I realized two things.

  1. It is very unlikely that adding two miles to the runways at LaGuardia will have THAT big of an impact.
  2. It is kind of a miracle that we ever get anywhere when it comes to flying, so maybe be nicer to the folks at the desk.

What I learned this week: Data Skew

Disclaimer: In the spirit of full transparency, I learned about data skew a little while ago. But the whole point is “what I learned this week.” In some cases, “this week,” just refers to this week in time…like…last week, last month, whatever.

My first brush with NPSP was as a consultant. I remember very clearly thinking that some of the features would have been very handy for my B2B sales staff back in the day. In a lot of ways it was love at first sight. I still get prickly when people say mean things about it…

[Insert about a half hour of me looking for the best option for a “Don’t talk to me or my son ever again” meme before realizing there could potentially be a better use for my time.]

That said, the first time I started getting error emails at about 2am was ALSO around this time.

You know, this one:

Message: “First error: Update failed. First exception on row 0 with id 001……………; first error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record or 1 records: 001…………….: []”

And I was flummoxed. What does that even mean? Why are you locking anything? Who said that you needed exclusive rights? And what does this have to do with merging records?

For a while I sort of…ignored it. Honestly it would run again at some point, right? It rarely happened more than once for the same record.

Sometimes I would have dozens of them. Usually right after some major data change or something. I suspected they were related, but I had other pressing concerns, and eventually everything would be sorted.

Over time I filled in the blanks. Unable to lock row meant that whatever the code was trying to do, it couldn’t get update access to the record.

If I spent more than 30 seconds on it, it made sense. A record cannot be edited by more than one person at a time, so why would it make an exception (ha ha – get it?) for custom code.

And then again, for a while, I left it at that.

Enter Data Architect Trailmix, stage right.

A super important part of the large data volume considerations that are discussed in the data architect arena is the concept of data skew. And as I read about it, I was taken back to a project early on, a move from the Starter Pack and a bucket model to NPSP with Household Accounts.

This client was looking to upgrade to the new success pack. They had been using the bucket model for YEARS – more than 50,000 contacts all inelegantly shoved into this single Account called “Individual.”

It was difficult to report on things. It took forever for the record to load.

I knew that there was a correlation, but I could not, especially at that time, explain what it was. I had a sense that having to many child records was a bad thing. I didn’t know what to call it. And I wouldn’t know, until years later, that that very situation was what caused errors during the overnight batch processing.

Data skew occurs when we have too many child records, plain and simple. It has an impact on loading time (you try showing a record and querying tens of thousands of records at one time), reporting, and…yes, automation.

It doesn’t exactly help me fix the errors all the time. Sometimes it’s just bad timing, and not even because of data skew. But putting a name to something makes it more accessible, less concerning.

Carry on, NPSP. Carry on.

What I learned about this week: E3

Look at me, sticking with this idea of sharing the things I learn each….week….ish.

And really, I’ve learned a lot this week. I’ve been studying for some exams, been setting up some new third party applications I haven’t used before. That’s cool.

Know what’s even cooler? E3. E3 is infinitely cooler. To an extent, anyway. I mean I don’t GO because…people. But I can watch all of the announcements via the wonders of the world wide web, and here are the things that I learned.

Bethesda is still just…really wanting me to buy Fallout 76. It’s not going to happen, Todd. It’s just not. Best overview of their announcements? Right here, from the Onion.

Sony wasn’t at E3, but we still got to see the Final Fantasy VII remake from Square Enix, which is exclusive to Playstation.

BORDERLANDS 3. OUTER WORLDS.

But what has really stuck with me is that the new Cyberpunk 2077 trailer and RELEASE DATE melts my face right off. It’s just gone. My face has been replaced with a constantly shocked and impatient look of wonder.

Have you seen it?

I didn’t know that a game trailer would ever be able to do that. But here we are. Just in case, I’ll probably go watch the trailer a couple of more times…see if there’s anything else I can pick up before this week is over.

What I learned: TDX19

We’re just going to leave the elephant in the room right where it is, so…make peace with that.

I had the great pleasure to attend TrailheaDX last week, Salesforce’s smaller developer conference, in San Francisco. It was my first TDX, but I certainly hope it won’t be my last.

For those who have never been, it is WAY smaller than Dreamforce. Dreamforce spans over blocks and blocks, from Moscone to local hotels, and it’s not unheard of to walk close to a mile just to get from one session to another. TrailheaDX is not like that. It takes place entirely in Moscone West – granted, all three floors, but comparatively, it’s easy.

It also is repetitive. That has some negative connotations, I realize, but hear me out.

Dreamforce takes place over what I’m confident is half of the city, and very few sessions are alike. If you miss a session because you’re on one end of the event, and the session is on the other, then that’s it. You can hopefully catch a recording later.

TDX had some – not all – but some sessions repeated in the theaters, so if you missed it one time, you might be able to catch it again. Not all of the sessions worked that way, but enough of them that I was able to safely select one session over another because I knew I’d get a second chance later during the event.

There was still all of the energy and good vibes of the community; I still got to see a lot of my friends and coworkers.

And this was the first time in years that I simply attended the event. I didn’t volunteer or serve on a panel or do anything but go to sessions and try to absorb, and I’m glad I did. I learned quite a bit while I was there, and I came away energized enough to sit down and write this. Which is no small feat.

I had a bit of an epiphany, as well, that I’d like to share now.

As a self-proclaimed polymath, I have struggled with how best to run this blog. I wrote about it already, but I still never answered my own question.

So I’m going to unshackle myself a bit. Moving forward, I’ll be sharing things I learn – random, and untethered to a single category. Because that’s what’s interesting to me. Sometimes it’ll be Salesforce related, or technology related, or project management related, or…whatever I learned.

That’s what I’m taking away from TDX19, and I’m already looking forward to next year.

Morning Routines

I was just looking at my basic Twitter feed, and amidst the Salesforce and Mass Effect and election posts, there was a Promoted Tweet from the Wall Street Journal –

(I’m sure you’ve all seen the article in the journal, but I want to stress that it’s all conjecture. 

My feelings journal?

Michael, he means the Wall Street Journal.

Oh. The Wall.)

– interviewing the CEO of Slack, and the first question they asked was “What is the first thing you do in the morning?”

It just got me thinking about causality, causation, correlation, all of those fun C words that are similar but different. (Connotatively speaking, but also concretely.)

I seem to see a lot of things like this. People want to measure success by common threads of habits, and while there is likely something to that – successful people tend to work hard, sure – it also contributes to imbalance of power.

Because here is the thing.

I work hard. Absolutely. I don’t even have time to update this blog so often anymore because my job keeps me busy. But I ALSO worked hard when I worked at Geek Squad, and most people would not want to interview me when I was in that job to capture the things that made me successful. Strictly speaking, at that point in time, most people would not have seen me as successful. The way people spoke to me when I had that job definitely made that clear.

I am not even close to being the first person to point this out, and I won’t be the last. But asking a white guy what he does in the morning, and correlating that to his success in the tech industry, just isn’t meaningful.

I honestly don’t know how he answered because I really didn’t care. Most of the answers are irrelevant. Because what they do in the morning isn’t what makes them successful.

A working single mother who isn’t leading a Fortune 500 company probably has more on her plate in the morning. If she made enough money, sure, she might meditate or read the paper or whatever, but she doesn’t. Her morning probably starts just as early, and maybe she makes lunch for her kids, and then she gets them ready for school, sees them off, and then goes to work. Or maybe she has to be at work so early that she can’t do those things for her kids.

Asking an already successful person who started life on Easy mode is like asking a native language speaker how they managed to get those pesky verb conjugations right. Sure they had to practice and learn, they probably made mistakes, but since most everyone around them was speaking the same language, it made it easier.

I don’t begrudge the guy his success. And I’m not implying he doesn’t work hard. I AM saying that morning routines mean less than I think people give them credit for, and I’m also saying that I am just really tired of seeing those things come up on my Twitter dashboard.

Live from Dreamforce

It’s Wednesday – halfway through Dreamforce, and I’m returning from a day and evening of volunteering, playing Dungeons and Dragons, and having dinner with some of my absolute favorite people.

I look back on my first Dreamforce, and I look at where I am today, and I still can’t believe it. How is this my life? How did I get so lucky?

Not to say that it comes for free. I work hard, and I work a lot, but I enjoy my work, and part of my career is experiencing this event (and others like it) every year.

One of the first things I was asked to do this year was fill out a gratitude card – what am I grateful for?

This. All of it. I’m just grateful.

Travel as a metaphor

I got back into Michigan from New York on Saturday afternoon, only about 13 hours after my originally scheduled time. Other at Arkus were far more delayed than I.

It was all of the storms – crazy thunderstorms and a few tornado watches all along the Eastern coast that had flights coming in cancelled, which means no planes to carry us all home. I was holed up in the Delta Sky Lounge, courtesy of Coworker, when my phone buzzed with the cancellation notice.

Cut to about an hour in line, with a lot of other tired non-passengers, hoping to get something other than a three leg journey through Syracuse, then Atlanta, and then home just shy of Sunday morning.

These kinds of things are exhausting and anxiety-inducing to me, but they’re not something that makes me mad. The poor saps behind the counter can’t do anything about Mother Nature’s wrath against her ignorant children, so I’m not about to scream at them.

“If weather could be controlled, Delta would have bought it by now,” was my favorite line from the helpful attendant who patiently refreshed his screen to see if he could get me to Atlanta (impromptu family visit?) or Minneapolis (daily flights back to Michigan).

The wait (and my volunteering to sort some info cards for them while I did so) was worth it. I got on a flight to Minneapolis that night, stayed with Coworker for free, and hopped back on a plane the next morning to come home. Cue celebratory Electric Hero sandwiches, cocktails, and blessed sleep.

Travel, man, am I right?

Sam, you haven’t posted in months, and now you’re going on about travel, and you mentioned a metaphor, but…?

Allow me to use your question as a convenient transition and take you back in time about 4 months.

Another Coworker made the decision to move on to other things after some life changes, and so I took on a few extra projects that needed to be closed out. I also got a promotion – not sure I’ve mentioned that? Anyway, yeah. So I had the experience of onboarding an employee.

Things were kind of crazy. A lot of pressure systems moving around, as you can imagine, and accordingly, a lot of things were delayed, some things were cancelled. But during that time I learned a lot – got hands on with some new things, got creative with some other things, and also just did a lot of work.

Skies have cleared. I got a lot of things off my plate, and not a moment too soon, as we enter Dreamforce season (already?) and very soon after that, holiday season. I still have some behemoths hanging around, major projects that are ramping up, but it’s so good to just breathe. I feel in control again – finally, after months of feeling like I was on a loop, digging and digging and digging but never seeing the surface.

And isn’t that the thing that’s so frustrating about travel issues?

 

 

GTD: One Year Later

I wrote, just over a year ago, about discovering GTD…that’s a misnomer. I didn’t discover it. It was required reading. But…I mean, it’s kind of discovering?

Not the point.

A year ago I wrote about being new to the concept, new to the practice, and now, with little time to write these days and even less capacity for new ideas for this blog, I am reviewing my last year in GTD. In my typical fashion, no less.

First, my confession. I royally sucked at All The Things for most of the last year. It’s a hard thing to learn. Especially for someone who has random thoughts throughout the day, some of which might be worth capturing, but the vast majority of them not really…tangible or worth making not of. I swung wildly between extremes. I wrote everything down, but then I would exhaust myself going through all the stuff. So then I scaled back, but I scaled back too far. And frankly, after Zoe passed, there was about a month of me just trying to stay above water at all.

Even through the struggle and the sucking really bad at following the really clear directions provided, I adopted small things that worked really well for me. Organizing ideas, to-do’s, etc. by project? Super helpful. In a way that I thought would be overblown, but it made it clear just how dis-organized my prior organization had been. What is a project? Anything that is more than one task. Well that makes it really simple to identify a way to categorize projects. That and…you know…managing projects as my job.

I tried not to beat myself up about it too much because, from conversations with others who had started out with GTD brand new, there’s often a time of off and on again.

 

But I did beat myself up about it. A lot. And frequently. Like anything else, it’s something that I knew I needed to devote more time to, devote more energy to, and so I would try, but when I failed, I failed hard. Or at least I thought. I was trying to mimic, in every way, other people’s processes.

And then in November things kind of clicked into place. I wish I could say there was a sudden shift or some specific thing that happened that made it all clear, but there wasn’t. I just realized that I couldn’t do things exactly like other people. Even the book makes it clear that there are levels and different ways of doing things – the concepts are what matter, not the tactics.

So I gave myself one goal. Every day I needed to review OmniFocus. I put no restrictions on myself in terms of when that happens or in what context, but each day, I need to review OmniFocus.

What a difference that made. Instead of trying to force myself to do X, Y, and Z, I just said “do this one thing.” The rest sort of fell into place.

Because I knew I would be checking OmniFocus, I started entering important things there. Sometimes as a generic capture-to-inbox thing, and sometimes as a go-to-the-project-and-spell-it-out thing. No pressure. And if I was in between back-to-back things and didn’t put it in immediately, that’s ok because I’ll be checking it later, anyway, and I can add all of those little extra things then.

That’s really the point. It’s not about following the “rules” or step-by-step instructions. It’s about freeing yourself of having to remember all the things. I don’t have to remember all the things. I just have one goal, every day, and if I’m consistent with that, the rest falls into place.

Still not perfect. Still forget some days. But it’s better, and I think that’s all we can ever ask for.