All posts by jer_

I’m southeastern Michigan dwelling programmer, public speaker, project manager, educator, and geek of varied interests, esp. those related to development, mathematics, writing, and event management. You can find me strewn about the web at places like Twitter, Facebook, LinkedIn, and probably a million other places.

2022 Lance Family Holiday Card

Happy Holidays from Ger, Bowser, Yoshi, Koopa, and Jer!

Both Ger and I fondly recall playing the games on the backs of cereal boxes (or looking on with envy at the much cooler games on the backs of sugar cereals were were not allowed to consume, in some cases!!), so this year’s card theme is a cereal box replete with games and nutritional information!

The card can be found below, and below that, the answer key to the games, so be careful scrolling if you don’t want spoilers!

Continue reading 2022 Lance Family Holiday Card

Leadership, Empathy, and Burnout

A twitter thread on management, empathy, and burnout
First, a thread on management, empathy, and burnout. You should read this before (or instead of?) this post

I first ran across this thread in early 2021 a couple of months into the COVID pandemic response (and all the stress that came along with that), and I doubt a week has gone in the year since that I haven’t thought about it. It lives in the top of my consciousness, and I highly suggest you give it a read before (or instead of) this post.

The question that kicked it off is an astute one: is burnout for management inevitable for people who actually care about the wellbeing of other people? I have thoughts.
Continue reading Leadership, Empathy, and Burnout

The New Leader’s Bookshelf

It will come as no surprise to anyone that knows me that books have played an incredibly important role in my leadership growth. The only thing that I can think of that has had as much an impact has been finding opportunities to be on both sides of mentorships, but books have been the most consistent throughline on my journey. <shameless plug> If you’re so inclined, you can listen to Dawn and I talk about leadership books, even.</shameless plug>

Even as much as I love books and learning, I freely confess that “self help” books—especially those devoted to professional development or leadership skills—are a mixed bag, and that mixture is not weighted toward quality. The field is rife with trite, repackaged ideas; facile derivations of more established works (do we need more Zen and the Art of Leadership or The Art of War for Managers?); incredibly vague pap; or dangerously misguided approaches. However, there are gems out there.

It was while sifting through some of that morass to recommend such gems to a colleague that I had an idea: putting together a “bookshelf” of sorts for the new leader. My goals are simple: a manageable number of books that would guide a leader from “I am pretty sure I want to lead” through “oh shit, I have a team now what” without being overwhelming or excessively jargon-y or attempting to be overtly clever—oh, and without breaking the bank.

This is the result. A dozen books that divided themselves naturally into three discrete phases of becoming a leader that, if you bought them all at once, would set you back roughly $200. The intention is that these books can be read in order at a comfortable pace—usually around one every month or two—and that their lessons can be put into practice by leaders and aspiring leaders alike.

Continue reading The New Leader’s Bookshelf

My Diminished Universe

As is true for most of you, I didn’t start 2020 with the intention of spending most of my waking hours in the same room in my home for months without end. My home office was, therefore, very much set up to accommodate my normal usage—playing video games, recording podcasts, and occasionally hobby coding—and to be “good enough” for the day or two each month I worked from home.

It did not take long to establish that what was sufficient for a few days a month was less than ideal for every day use. I believe my exact quote roughly a month in was “okay, this is about some bullshit right here.”

What followed has been an iterative process of tweaking my setup until it manages to satisfy my needs for work and for personal uses. All in, it’s taken about 8 months of calendar time, but that has amounted to probably one full day a month spent making significant changes to experiment with how things can be improved. I thought, then, I’d share with you!

Continue reading My Diminished Universe

The Best Christmas Album of All Time! (Volume 3)

It’s been five years since I first posted a playlist that I humbly referred to as the Best Christmas Album of All Time. The following year I, with nary a whiff of irony, posted a new playlist that also purports to be the Best Christmas Album of All Time, albeit a second volume. Doing a third entry seemed positively indulgent, so I didn’t…for a while. But Christmas music—for some reason that I’m sure years of therapy would help me uncover—is a thing that makes me happy, and if ever there was a year in need of a little happiness this is it.

So the Best Christmas Album of All Time has grown one volume larger and, as a result, one album better. Feel free to listen along on whatever Google has foisted off on us as this year’s music platform as you read (or just listen and don’t read)(or hey, don’t read OR listen, I’m not your supervisor).

Enjoy! (or not, again, not your supervisor) Continue reading The Best Christmas Album of All Time! (Volume 3)

Supporting the Protests

All in this weekend you donated nearly $1300 and I am humbled by your generosity and your empathy. Based on the distribution of the donations (and given the guidance from the Minnesota Freedom Fund and the fact that the Black Visions MN fundraiser ended on Saturday) we are allocating our matching funds roughly proportionately to each of the following:

  1. George Floyd’s Family GoFundMe
  2. Detroit’s The Bail Project
  3. Reclaim the Block

If you haven’t had a moment to donate, please take the time to support these worthy causes (or similar causes in your area).

Alongside these donations were messages of hope, of support, and of relief at being able to do something, even if merely donate.

There is more that you can to, though. It is important that our slacktivism doesn’t end at writing a check and walking away. Become an active voice in your community about how policing happens, about how our judicial system fails black citizens, and in support of minority candidates whose qualifications don’t percolate into visibility in our society.

But also, become educated. Add black authors and directors to your repertoire. Read about history beyond the whitewashed (I learned late in life to my utter horror) facts they taught in school. While you’re bringing diversity to what you culturally absorb, encourage your social circle to do the same. Talk about what you learn. Don’t let misinformation float uncorrected.

These are general ideas, but there is a great list of specific action items that I am starting to work my way through.

I do want to respond to one particular brand of message that came through: messages chastising me for “celebrating”, “cheering”, and “applauding for” the riots. I want to be entirely clear, I do not pleased about these rights. I find this situation tragic and horrible. I find it horrible that we as a society have failed our black fellows so abysmally that they have turned to destroying property. I’m saddened by it, and I’m upset by it.

It’s also depressing how much our schools have failed those of you that cite the black civil rights movement’s non-violent nature as the reason it “succeeded” (and success remains locked behind scare quotes like a disproportionate number of free black men and women remain locked behind bars). You forget that our government responded to growing fear that violence unrest would spread out of the South as much as to stirring words and acts of non-violent civil disobedience.

If you’re outraged about the property damage, I invite you to read The New Inquiry’s article “In Defense of Looting” and perhaps grow a bit of perspective as to why I support the looters, rioters, and protesters even as I wish they weren’t in a position that they feel it’s necessary.

Thank you all for your generosity and please keep that spirit alive as you dive into additional, impactful things you can do to help our fellow citizens.

Donations to Help Minneapolis Protesters

UPDATE: We’ve just passed $500! Your generosity is humbling, thank you all so much, and keep spreading the word!

If you’re feeling as helpless as we are, you’re probably looking for what to do to help the protesters in Minneapolis. This weekend, my wife and I are matching the first $1,000 in donations to any of the following organizations:

Here’s all you have to do…send us a redacted copy of your receipt to (me at jerlance dot com). That’s it!

Every little bit helps, so please spread the word and donate whatever you can afford.

The End of an Era

How’s that for a melodramatic title? “The End of an Era”? My narcissism knows no bounds!

Today I have opted to resign from the Penguicon Board of Directors, ending more than a decade of service to the convention nearly half of which as a member of the Board. There are numerous reasons for this, but as much as I will discuss publicly is described in my letter of resignation, reprinted below. Suffice to say, this isn’t a “rage-quit”, it’s not a call to brigade those who may or may not have done wrong, and it’s not the start of some battle. The direction of the Board and my direction are no longer aligned and so I am distancing myself from them; no more, no less.

I wish the Board and Penguicon both the best, and I will see you all at this year’s event!

Fellow Directors:
Several years ago we as a group met with members of our community to discuss the concerns those members had about the direction of our newly expanded code of conduct and that of the extension of those guidelines by the convention committee. Their apprehensions were and remain valid: certainly the policies outlined could be abused and over-applied; similarly, these policies could be misapplied as zero-tolerance mechanisms for antagonism by those so inclined. All behavioral policies carry risks, and–without strong stewardship and careful oversight–ours could as easily become tools for abuse as they could empty words. We knew this then, and we promised to provide that stewardship and oversight.

I made assurances then as I did over the ensuing years that the purpose of those policies was not to allow such abuses and that those of us on the Board of Directors considered it our responsibility to ensure that these policies were applied evenly, intelligently, and judiciously. I made a personal promise on that call–a promise that I have reaffirmed numerous times in the years since–that I would fight overreaches of these policies as strenuously as I would fight to see them applied where needed; that I would not be a part of a governing body that allows our codes of conduct to fail to be applied nor would I watch them be maliciously applied. I would resign before I would be a part of either type of misconduct.

Since that time, I have had numerous opportunities to honor that promise alongside many of you. I have fought to apply the code of conduct to situations requiring it and I have wrestled with those that would use the policies as a star chamber to punish or expel those they found undesirable. I have found it simultaneously exhausting and fulfilling to do that alongside a board membership that was largely like-minded. Even when we have personally disagreed with one another, I have genuinely felt that we were doing the right thing and fighting together in the direction of that judicious, intelligent application of our guidelines.

Today, however, I come to the end of a much more exhausting and much less fulfilling period. One member of the Board seems to have decided that their agenda is more important than our shared mission and that any attempts that aren’t in alignment with that agenda are to be met with hostility and subversion. More recently, I have watched with some disappointment the formation of cliques within the organization that overlap significantly with the Board and that member. Those cliques, in turn, have started to leverage the guidelines in order to push this singular agenda and–especially since the January 2019 Board meeting–actively abuse the harassment guidelines with the goal of engineering a convention committee of their liking. I remain firmly devoted to our code of conduct, so much so that I cannot abide by the willful abuse of it; an abuse that undermines and lessens the authority of it. With those potential abuses now coming from within our numbers, I find that I must honor the second half of my promise and tender my resignation to the Board of Directors, effective immediately. I cannot prevent the abuses that are on the horizon, and I will not be a part of an organization promoting such malfeasance.

I wish you all well and I know that this year’s convention will be another amazing year. I can only hope that the remaining Directors can find someone with more time and energy to ensure that this mismanagement doesn’t continue to grow.

Thank you for the opportunity to serve,

Signed by…you know…me :)

16 Years of Gratitude

Periodically over the years I have taken the opportunity to reminisce on this date, the anniversary of my first day without drugs and alcohol. There are several posts to that effect, and I’m sure there will be several more in the future. On today’s “clean date”, I want to focus on gratitude.

I am married to a wonderful woman who is my peer, my partner, and one of my favorite people in the world. After years of unhealthy, codependent, and manipulative relationships, I am a part of one wherein we both make each other better.

I have a fulfilling job that I enjoy, that I feel that I am especially good at, and for which I am well suited. I work with a group of people that are supportive and challenging and always help me to grow. Across the board—the team I lead, my peers and colleagues, and the team that leads me—collectively and individually they inspire me to do my best work and provide a nurturing environment where a deeply flawed individual such as myself can improve and develop.

Financially, I am grateful to be in a stable place for once in my life. In the past I’ve made much more than I do, but at the expense of my integrity, my self respect, and my general happiness. I have also worked an honest job for an honest day’s pay that left my family on the brink of (and at times even beyond the confines of) financial ruin. They say that money can’t buy happiness—and they’re right—but a baseline amount sure can buy your way out of certain types of misery. Today, we have the gift of comfort without sacrificing the things that are actually important to us.

I am incredibly thankful for the relationships with my children and my (gasp) grandchild. It was not always a given that we would have any meaningful relationship, and the fact that I can be a witness to both my son and my daughter as they start new lives as adults is awe inspiring (and more than a little confusing…I cannot be old enough for this to be happening).

All of these newfound areas of stability in my life have resulted in my wife and I becoming homeowners for the first time last year. For my entire adult life I’ve resisted owning a home in favor of the ability to cut and run whenever the mood suits me. For most of the last decade, I’ve kept one foot out the door, ready to say “to hell with it all” and take on a sexy, Silicon Valley job at any time. That’s never been what I’ve wanted, though, it’s what I have felt like I’m supposed to want. So I’ve put down roots and nestled more firmly into what makes me happy.

Today I have friends and acquaintances that I love and respect that love and respect me in return. My personal relationships are not transactions and are especially not rooted in who owes who what. I’m thankful for the ability to shed unhealthy relationships and nurture those that are healthier. Together, we can celebrate life’s joys and support one another when needed and simply be on this journey together.

It is very easy to slip into cynicism, frustration, anger, or sadness today—the world is a trash fire being hosted inside of a dumpster fire during a gasoline monsoon, and somebody keeps playing free jazz at full volume—so I wanted to use this anniversary of mine to remember some of the myriad reasons I have to be grateful for my life at this time. Thanks for bearing with me during my uncharacteristically maudlin moment, I’ll be back to dick and fart jokes soon enough!

Social Media Musings

It is with a degree of trepidation that I return to Twitter after a month-long hiatus. There are numerous reasons, but my primary justification is that they’ve finally started banning shitbags like Alex Jones, and you reward good behavior, even if it’s late and reluctant.

A more direct reason, though, is that for all of its faults, Twitter fills a gap that neither Facebook nor Mastodon can yet manage. Facebook is obvious; from a ethical standpoint it is no better than Twitter (and might manage to be worse in many ways). More impactful to me is Facebook’s lack of topic muting coupled with it just being the wrong crowd. Facebook is where I’ve aggregated friends, family, colleagues, and acquaintances for life updates and event planning. It turns out that the politics of many people in those groups tends toward horrifying.

Mastodon though, in my experience, is almost worse. Whereas Facebook and Twitter are those racist cousins that you visit briefly until they drop an n-bomb in front of your kids, Mastodon is that seemingly polite aunt or uncle that seems sweet until you find out that 20% of their income goes to the Westboro Baptist Church and they lobby to keep “certain types” out of their neighborhoods. The former gives you the option of beating a hasty retreat or standing your ground and fighting. The latter just makes you wonder how much your presence in their life is advocacy of their beliefs.

Mastodon just feels uncomfortably like everyone is wearing their most presentable mask…but as Wil Wheaton saw, the faces beneath look awfully similar. Sure, it’s nice when it’s your “side” doing the dogpiling, but when you think of the ramifications it does cool the enthusiasm a bit.

But Mastodon is supposed to be safer than Twitter, so at least everyone is protected from that abuse, right? While Mastodon bills itself as more like a roll-your-own, artisanal social media experience–just pick an instance with whose ethos you’re aligned today, and if they abuse your trust you can just cart it all to a different instance–but that merely serves to distribute the burden simultaneously too broadly and not broadly enough. Wil was dumped from his instance because he was getting dogpiled and it was excessively burdensome on the admin. Mastodon, in a nutshell.

I hold out hope that we as an electronic community can come together and figure out a solution to the egregious abuses, but I’ve come to believe that the problem isn’t the network; the problem is the people. We have to solve our social problem, not our technology problem.

Until that time, I won’t cut off one potential abuser in favor of another, this time…although if we do run the into the problem of failing to ban painfully obvious abusers again, it’ll again be time to go.

The Cleverness of Intent Over Content

I tweeted the other day about some quizzes I had taken that yielded results that were…unexpected. Resulting conversations ran the gamut from the relative merits of requiring leaders of technical teams to be technical folk to simply commiserating about the “impostor syndrome”-triggering nature of failing even a badly done test—and I fully intend on writing about some of these—but that’s not this post. This post is about a different concept that the assessments made me think about; the incredible difficulty of making good testing materials and one strategy for making better ones.

The fact that teaching people is a tricky and difficult thing should come as no surprise, but what I found only when I had been doing it for a couple of years was that the hard part isn’t the actual teaching itself—that part is actually fairly simple if you know the topic really well and can communicate with any degree of clarity. The hard part is honoring your initial intent with all of the materials, but especially exams and the like.

I started my undergrad—well, the final time I started my undergrad—a working software developer fully a decade into my career. By the time I sat down to take one of my first exams in a class purported to be an introduction to programming logic, I had been writing programs for double that time. That test bothered me to such a degree that it haunted my thoughts for years to come as I continued my career both as an instructor and a developer. Why was it such a terrible exam? How could a fantastic teacher create an such a bad evaluation tool?

More than half of the test was comprised of questions best described by the following template:

What is the definition of {word}?

  1. Obviously wrong answer
  2. Answer that looks right save for one very small error
  3. Answer that could be correct, but is clearly wrong
  4. Correct answer

Of the remaining questions, most only deviated from this formula by not specifically requesting a definition. My favorite example from this particular type of question (presented to you by virtue of the fact that I’m a digital hoarder with decades of bullshit on my hard drive):

An array is:

  1. A collection of values stored in one variable referenced by index 1 to n
  2. A collection of values stored in one variable reference by index 0 to n-1
  3. A single beam of light
  4. A list of similar but unrelated items

There is a host of problems with this question, but for someone who spent some time programming in Pascal and Fortran both in school and professionally in the years prior to this exam, this question was really galling.1

The crux of the problem is, there wasn’t even any point in the latter half of the text of the “correct” answer. It’s clearly very clumsily tacked on as a counter to the “trick” answer. Getting this question “wrong” by answering (1) doesn’t indicate that you don’t understand the material—at best it indicates that you were unclear on a nuance. More importantly, answering this question “correctly” doesn’t even indicate a fundamental understanding of what an array is—as evidenced by the lackluster results of the first practical exercises when we used arrays.

The instructor took their eyes off the prize and forgot what their intent was in giving the exam in the first place. So many tests make this exact mistake. The purpose of this exam was stated in print at the top of the first page:

The purpose of this exam is to demonstrate a basic understanding of how [to] use the foundational components of a computer program…

In most applications, simply knowing the definition of a word—especially to a pedantic degree—does not afford one any more ability to be proficient in a thing that not knowing the definition.2 Wouldn’t the following question have better suited the purpose?

For the following questions, use an array defined in C as follows:

char letters[5] = {“h”, “e”, “l”, “l”, “o”};

What index would you use in C to request the letter ‘e’?

Rather than the definition, if you correctly answer this question I now know if you know how to USE this foundational component of a computer program. It’s still an imperfect question, but already it is more aligned with my exam’s intent. But wait! What if you need to ask a vocabulary question in order to satisfy the intent of the exam? This isn’t uncommon, but the vocabulary question should be phrased in a way as to satisfy understanding over recitation.

In the bad array question above, the language used in the potential answers was directly from the teaching material. This is often done for a very rational, well intended reason: to AVOID tricking students by changes in wording. The problem is that it doesn’t really prove that the student understands the concept which—again—was the stated intent of the exam. It provides evidence that they can recite the verbiage that you provided already, not that they know what it means. Validating understanding of vocabulary in a way that is quickly and easily gradable (read: non-short answer) is tricky, but there are a number of strategies that have been shown to have success.

Most commonly, multiple choice (as above) but with the actual correct answer being a derivation of the textbook answer and the other answers being derivations of other vocabulary items in the material being taught. This can be done in the single format (again, as above), or it can be done in a many-to-many format (as in “draw a line between the word and its definition”). Asking the respondent to select synonyms and/or antonyms can also be valuable in some cases.

Strategies notwithstanding (and if you’d like more in depth information on strategies like these, I highly recommend How Learning Works by Abrose, Bridges, et al), all of this is secondary to resolutely ensuring that you choose mechanisms for evaluation that adhere to the reason that you chose to evaluate the student to begin with.

It is challenging. Even with this knowledge, and even after taking numerous courses on pedagogy, I still struggled with making my testing materials valuable to students. Some time after I had taken this fraught exam, I found myself giving exams that were in no way better than those I am describing here. During one frustrating exam creation session, I got up, walked to the dry erase board in my office, and wrote the following3 in huge letters directly in my line of sight:

I want to know that students that pass this exam will know exactly how to use the things I test them on here in practical ways, and that students that get questions wrong will know exactly what they need to study to be able to use those things.

I want no students that know the answer to a question to get it wrong.

I don’t want my exam to be clever, I want my students to be clever.

Simply, I wrote my objective statement where I could see it. I made my intent…well…intentional, and I did so in a manner that increased the likelihood that it would impact my actual behavior. The positive direction that this pushed my teaching and my students was palpable. The test that I was writing at the time immediately felt more “right” to me than any I had created before. Each subsequent quiz and exam moved closer and closer to the ideal I had in mind because each time I looked at my material I found new ways that it wasn’t honoring my intention. As my skill as an instructor improved, so, too, did my ability to find ways to meet those objectives.

The results weren’t simply gut feel, though. Exam scores improved, but more importantly so did the results of all project work and labs. My sample was small, but my pass rate went up by a small-but-measurable percentage. Better still, the students that came out of my classes started being lauded as particularly “well prepared” for higher-level courses to follow. In short, I hadn’t made the tests easier—I had made them more effective.

Years after this epiphany (and I use that term very loosely, here), I had the pleasure of getting positive feedback from a student at the end of my course. She was switching careers from a decidedly non-technical field to that of a developer, and among the things she said one that stood out to me was the observation that her test anxiety and impostor syndrome did not manifest so intensely on my exams; that, as she opined, the exams “didn’t try to make her feel stupid.” Her software career has surpassed my own at this point and I delight in the idea that this change in course might have played some small part in that.

In my experience, there’s no magic bullet that creates great exams. It is only through conscious, mindful attention to the goals of the exercise that you can hope to end up with the desired result. Conscious, mindful attention…and a ridiculous amount of practice. As an aside to the armchair quarterbacks out there mean-spiritedly snarking about “shitty tests” I extend this invitation: create an exam about something you know very well and see how difficult it is to make something of which you can be proud. I think you’ll be surprised.


1 The “correct” answer was 2, but Pascal, Fortran, and numerous other languages start their indices at 1 rather than 0. Further, most modern languages (even at that time) allow for non-numeric indices, making the question even more grossly inaccurate.

2 There are exceptions, obviously—knowing what “flammable” or “caustic” means could be pretty important in a lab setting, for example.

3 In reality, it was probably something very similar, it subtly mutated over time, but this is pretty close to what I wrote.

Penguicon 2018 Panels

I began planning for this year’s Penguicon with the best of intentions. I put together a handful of panels that I wanted to do and submitted them on time, like a proper planner. Then I agreed to be a panelist on a couple that seemed to be a good fit. Of course, I forgot about the recurring board panel. So now my current load for Penguicon is 6 sessions. I’ve done worse, but, I’ve certainly done better :) I don’t know exactly when they’ll be at the moment, but this is WHAT they’ll be: Continue reading Penguicon 2018 Panels

Moving Sale

As part of our move, Ger and I are getting rid of a number of things we no longer need. Our plan is to put a list below, if you want any of this, let one of us know and make an offer: we will accept the first reasonable offer for each item provided you can pick it up on the weekend of 8/12-8/13.

Anything that doesn’t find a home with one of y’all gets donated to Goodwill that weekend.

The items:

  • Leather Futon: great shape, barely used
  • Countertop Dishwasher: this works surprisingly well, connects to the sink directly (no need for plumbing work) and served admirably for a family of 2-3
  • Server Rack: 5′ tall and 3′ deep with cable management, a few shelves, removable sides and doors, and a power strip…note, it’s fairly heavy SOLD
  • Shoe Cabinet: the Hemnes cabinet from Ikea near our front door… holds 12 pair of shoes  SOLD

I’m sure I’m missing some that I’ll add here as I come across them.

Current Events, Russia, and Conviction

It has been quite a week for politics, hasn’t it? In case you haven’t been paying close attention, allow me to catch you up to just some of the goings on:

On Tuesday, Trump fired the Director of the FBI, James Comey. He did so citing a letter from Deputy Attorney General Rosenstein recommending Comey’s removal. The American people are to believe that the testimony from the day before by Sally Yates (the former Attorney General that Trump fired for not rubber stamping illegal activity) about the Trump camp being well aware of Flynn’s problematic association with Russia is mere coincidence.

More coincidence? The request Comey made to Rosenstein for additional funds to expand the FBI investigation into Russian interference in the election that ultimately won Trump the presidency that happened just days before Rosenstein recommended—and Trump executed—Tuesdays firing. Continue reading Current Events, Russia, and Conviction

On the Need to Make Great Things Great Again

Among my plans for the day, today, was to put together a quick writeup congratulating the staff of Penguicon for throwing an undeniably successful convention—the 15th in a series! Instead, I’d like to take a moment to respond to a long-time attendee’s paen to modern divisive politics; a blog post with the snappy title “Make Penguicon Great Again.” In his post, Jay “Tron Guy” Maynard makes the assertion that Penguicon has fallen to the “leftists” and resulting event is no longer one that is comfortable for people like him.  Continue reading On the Need to Make Great Things Great Again