Sunday, July 21, 2019
July 21st, 1969 I (with my parents) moved to Canada for the second time. The first time, I had been an infant, and the move had been temporary: my father was doing his PhD at Carleton University in Ottawa. When he completed it, we went back to England as the plan had always been. We had grown from a family of 3 to a family of 4 in the meantime. But when they got back to England, they missed Canada a lot. So, by 1969, they had found a way for the now 5 of us to return. Originally it was to Ottawa and a job in a government research lab for my father. But within less than a year he decided to take a chance on the very new University of Waterloo and he worked there (with consulting clients and inventions and other side projects) until he retired to Nova Scotia.
I often warn friends who are considering emigrating that if you do, you are likely to raise children who think emigrating is ok: my Canadian-born brother lived in Japan, Europe, and the US for decades before settling in Vancouver. My UK-born sister has been in Ireland, England, and now Wales for a similar length of time. I have two other sisters and one of them has also changed continents a few times and now lives in England. Me, I've stayed put. I like it here and couldn't imagine living anywhere other than the Ontario countryside, though I sure do like to visit other places!
I remember very little of the move and the change of countries. We had been told of the rabid animals (there is no rabies in England) and the importance therefore of never letting a squirrel or chipmunk near you. Also of the cold, which I didn't remember from my first time. While I can't remember any of the moon landing hoopla at all, I do remember one scene from the airport as we arrived. We approached two doors, one for Canadians and one for all others. Well not doors, more like archways in a wall. And some official insisted that my brother go through the Canadian archway. He would have been 6 or 7 and my parents resisted but this official was adamant and said it would be fine. Which it was, because there was no wall between the two areas so it was a separation of a minute or so in full sight. We went through the arches at the same time but when we got through, this official knelt down to my brother's height and said "welcome home, little man" to him. I have other memories, of being bullied at school for my accent, of clashes with teachers who literally refused to teach me things I didn't know because "we covered that last year", of amazing beauty and nature and discoveries of all kinds, but that moment is one of those that really sticks with me. This place is home for me too.
Sunday, July 14, 2019
On July 14th, 2017, Guy Davidson tweeted what he thought was a passing pun:
But when I saw the tweet, I thought, yeah, why isn’t there?
And in that moment, #include was born. We got together at CppCon and again at Meeting C++ where Guy did a lightning talk on inclusion. We were off and running. At that time we had a channel on the cpplang slack, but that didn’t work out well: a change of owners of the slack to someone who was less interested in preventing harassment and abuse, coupled with slack’s fundamental design tenet that people having trouble with bad behavior on a slack channel can always go to their mutual boss (which doesn’t work on public servers that bring strangers together) resulted in #include being pretty much driven off the slack and forming our own server elsewhere, on discord.
The original channels on the discord were all about the work of running #include. How can we get conferences to have a code of conduct? How can we help employers to write job ads that will attract all kinds of applicants, not just people who closely resemble the ones they already have? But we couldn’t stop talking about C++ so we added a channel for that, and then another for something else technical, and another, … and things really started to grow.
By April 2018 we were about a dozen organizers and very few people who weren’t organizers. But now we have over 2300 members and over 70 channels. People are getting help with C++ problems they face, recruiting helpers for projects, getting advice about speaking or attending conferences, and much more.
Our original goals were pretty low key really:
- To encourage under-represented people to speak, to apply for jobs, to stay in this industry
- To get conferences to have a code of conduct (we hadn’t even thought about enforcement)
- To get employers to value diversity somewhat, and to provide some resources to conferences and employers
We thought it would be nice to have some stickers and Tshirts made, and have a table at conferences where we would urge people to join our discord and try to make our industry more welcoming. Well, that worked! We’ve had tables at major C++ conferences the world over and you can be sure to find a smiling person to talk to, whether they’re officially “working the table” or not.
We’ve seen these shirts at conferences and user groups around the world, at C++ standards meetings, and on a lot of speakers and influencers. We think they send a strong message to attendees that the world is full of friendly and welcoming people who will not exclude you because you are different in some way. If you want one, we have a US-based store and a European store, or you can find us at a conference near you. We try to diffuse the stickers around the world – if you run a user group and are going to be at a conference, get in touch with one of us (the conference channel on our discord would be the best place) to see if you can get a handful of stickers to take home and give out at the group.
Last year at about this time, someone asked if we were interested in partnering with the Women in Tech Fund to get women to CppCon. We sure were! The conference donated tickets at below their catering costs, and we raised $4000 to cover travel and accommodation for our scholarship winners. It was a big success and we keep doing it at conference after conference. Right now we’re raising for CppCon again – this year not just women, but anyone who is under-represented in the C++ community, can apply. If your employer isn’t sending you, why not see if we can?
This is a lot more than we had originally planned to do. A number of us started insisting on a Code of Conduct before agreeing to submit talks to a conference, and suddenly it seems all the C++ conference have good Codes of Conduct now, with real enforcement too. There’s a best practice gaining popularity of introducing the Code of Conduct team at the start of the conference too. We started handing out pronoun stickers to put on badges, and not only do lots of people take them (please take one even if your gender is obvious, it makes life easier for those whose isn’t) but some conferences have even started including a pronouns field on badges. We’ve built this amazing friendly community on the discord where people are learning and growing and becoming leaders in the C++ community at large. We’ve seen talks and demos and forms and web sites changed after we pointed out that a particular wording or example wasn’t welcoming and inclusive. People generally want to be welcoming and inclusive, they’re just not sure how to do it, so our strategy of providing really specific unsolicited advice has worked well. And probably the thing I’m most proud of is the people – actual breathing humans – we have sent to conferences. Going to a conference is career-changing, especially when you’re relatively inexperienced. You can meet your heroes, ask questions, learn a ton, make connections, get advice, and re-energize your connection to this industry and your job. Already I am seeing former scholarship winners on stage, donating to the current fundraiser, and finding their voices on Twitter and our discord. It’s amazing. I want to pinch myself some days.
The people who form the core of #include support and encourage each other. Many of us have given talks we would never have otherwise given. I won’t speak for her, but I expect the jaw dropping and enlightening Deconstructing Privilege talk that Patricia Aas has been giving could be one of them. If you haven’t watched it, you should. A lot of what we’re doing at #include is “privilege lending” – using our positions to ask for things to make people with less privilege feel welcome. We’re also teaching people who’ve been spared some hardships about the realities some other people face. Often this is all it takes for things to change quite quickly.
We’ve also done a lot of lightning talks and internal corporate presentations about #include and what we’re trying to do, but it seems like none of them ever get recorded and uploaded. Rest assured, we’re still working hard to move the needle when it comes to inclusion in the C++ community.
What’s next? Well, we’d love to start seeing child care available at C++ conferences. We’d love to see other developer communities doing some of what we’re doing, and we’re going to keep learning from other developer communities too. We’re seeing things like quiet rooms, pronouns on conference badges, and food labelling becoming the norm. And we’d love to get suggestions from anyone who feels excluded from conferences, training, job opportunities, and online communities. Join the discord and join the conversation, or find us on Twitter. See you there!
Friday, June 28, 2019
I just published a small course on Pluralsight called Advanced Debugging with Visual Studio 2019. It covers IntelliTrace and Code Map, two features that are only in the Enterprise Edition of Visual Studio. Many people don't know about them, so I put together a quick introduction.
Here are some of my other current courses:
- Visual Studio 2019 Getting Started - what you need as a new user of Visual Studio to start using it. There are a variety of other Visual Studio courses, and pretty much all of the material from my 2017 one is still applicable, so don't take just this one or you'll be missing some really powerful techniques.
- Beautiful C++: Updating Legacy Code - I really enjoyed writing this course and if you maintain old C++ code, I think it will make your life a lot easier. It discusses both specific patterns to update (and why) and overall strategic approaches (not mechanically replacing every incidence of one pattern with a newer pattern.)
- C++ Fundamentals Including C++ 17 - this is the go-to course for developers who want to learn C++ today. Whether you never did any, or did some a decade or two ago, this course will cover the syntax, library, and best practices you need. If you've never programmed in any language, try Learn How to Program with C++ instead.
- Using Stack Overflow and Other Stack Exchange Sites - we all go to Stack Overflow when we're stuck. But a lot of us are bad at it, because it doesn't work like other sites. Take a little time to improve this skill and you'll get better and faster answers. You might even become one of those high-rep users who others admire!
- Beautiful C++: STL Algorithms - Stop writing raw loops and you will get more readable code with less effort. The library has so much waiting for you and this course will help you make sense of it all.
There are more, but if you take all of these, you'll be in a strong place as a C++ developer. (BTW, only the Visual Studio courses require Visual Studio. All the others work with any development environment you prefer.)
Monday, May 06, 2019
In early April I was lucky enough to go to Bristol in the UK for the annual ACCU conference. This has been an aspirational conference for me, one I attended before speaking at and am always delighted to attend. This year I was invited to keynote, and it turned out to be the closing keynote, which meant I was not done with all my talks until the conference was over! Nevertheless I enjoyed the week tremendously.
I flew to England overnight Saturday night. People often ask me how, given the fatigue issues I have left over from the whole surviving incurable cancer thing, I am able to travel. One reason is that when I travel, I only travel on travel days. I don’t try to work at the airport, on the plane, etc. I read a book or listen to music or just relax. On overnight flights, I sleep. I also schedule a few days to adjust to the time zone without having to think hard or meet important deadlines, like finishing my talk. On this trip, I spent two days visiting Cardiff, which is actually where I was born, with my sister who is planning to move there. It was marvelous fun watching a family explore and discover their new home town, and going to places I have seen on TV or in pictures.
Tuesday I did a private corporate talk about #include<C++> and diversity issues. It was very well received and I might offer it to other companies as a result. I always buy a train pass when I go to the UK and it got a good workout on this occasion. Back in Bristol I was able to relax and know I was ready for the conference.
After a lovely opening address by Russel, we had an illuminating keynote from Angela Sasse. Security can’t be left until the end or handled by a separate group who fight the developers. Afterwards I took some time to meet up with more friends and spend some time at the #include table. After lunch, a very good talk from Jonathan Boccara on reading unfamiliar code. I loved the map analogy and the way he showed using a call stack to increase your mapped area. Then a workshop from Gail Ollis on Helping Developers to Help Each Other which really brought home to me once again how important tactile artifacts – things you can pick up, put down, wave around, put next to each other and so on – can be to encourage open and complete communication. The recording stops when the hands on part starts – just one of those things you can only get by attending in person. The talks wrapped up with Lightning Talks and I did one – my first time doing so at ACCU. I was not able to stay up for the evening reception beyond a quick “hey! Great to see you!” to a handful of people. There were plenty of talks I couldn’t get to – recordings for me to watch later!
Day 2 started with a Herb Sutter keynote. I’ve read the paper but was really happy to hear it as a talk, and to hear the motivations behind enabling more people to use the whole language. Then I needed some down time before my talk right after lunch. I gave an updated version of “Nothing” and as always at ACCU got some great questions that will go into the next version of the talk – or some other one. Then I kept to tradition by doing the Pub Quiz, entertaining as always for the don’t-write-this-at-work code and marveling at how some folks know a lot of dark corners! Another round of lightning talks and an early night, meaning I couldn’t attend the Bristol Girl Geeks dinner as I had planned.
The Day 3 keynote was low on code and high on insight as Paul Grenyer talked about growing a community while dealing with the ups and downs of life in general. Then to a fascinating talk by Dom Davis about communicating, with significant meta content that I really enjoyed. I spent the lunch break at the #include table, and then dove into a variety of little talks – 15 and 20 minute ones. I was starting to tire and didn’t pay as much attention as I should have, but let me recommend Alex Chan’s reminder that the tech we build can hurt people when it’s being used as designed. I took a break to be ready for the Conference Dinner where I was able to catch up with old friends and meet a few new ones.
Finally Day 4. I started with Kevlin Henney and a talk with a similar title to my “Nothing” but very different content. Another break, another lunch at the #include table, and then some down time before my closing keynote. I updated the beginning of this talk since the C++ on Sea keynote, and I think this improves it. More great questions after and I think more material to work in there somehow. Then the close of the conference, a certain amount of hanging around not wanting it to end, and up to my room for another early night and to get ready to go.
Sunday all I did was take the train to the airport, fly home (sleeping a little on the plane) and drive home. A lot to process, as always after ACCU. And when I got home, a lot to catch up on, which is why this has taken a few weeks to write up!
Tuesday, April 02, 2019
Usually, I start writing product-specific courses during the beta of a product, then record them after release. But this time around I am happy to announce my Visual Studio 2019 course is live on Pluralsight already, on launch day!
If you need a trial code, click over there where it says Click Start a FREE 10-Day trial (I didn't make the image so I'm not responsible for the missing "to" in the text.)
It's just over 2 hours long - less if you play it higher speed. I cover the basics to get you using it properly. Yes, a long and super detailed course is in the works, but you could probably take the Visual Studio 2017 Essentials and Beyond course and most of it will apply to 2019. Things that are new in 2019 I covered in the Getting Started course.
Friday, February 22, 2019
I get a lot of requests to speak at conference now. More than I can possibly accept! This is a marvelous problem to have, and I'm delighted that there are so many relevant conferences and that a lot of them want me to be there. Sometimes if I decline a conference, it's just because I am doing something else in that time frame - I try not to do two conferences in the same month, for example - or the travel would be too far. But there are other reasons, so I wrote a little list of requirements and preferences. If you're running a conference, please check this list before you ask me to speak. If you're a speaker, consider putting your own list together. We can make conferences better!
And yes, I am working on a much longer list of what makes conferences great. It's over 4 densely packed pages right now and likely only to get longer. I will advise any conference-runner who asks me and genuinely wants to improve. Want my opinion of your badge, website, code of conduct, or the like? I'm happy to help.
Tuesday, November 20, 2018
My latest Pluralsight course is live!
I start by talking about strategy - what parts to update, what general approach to take, and so on. Then I present a number of specific tactics, like using the preprocessor less and the compiler more, actually using C++ instead of just C, and using C++ features that were added in C++ 11, C++ 14, and C++ 17. I show you code examples for the changes I am suggesting, and explain why specific changes produce code that is more readable, understandable, and maintainable.
As always, if you don't already have a Pluralsight subscription, feel free to click the large white box in the margin and start a free trial. I hope you like the course, and tell your friends about it too!
Thursday, October 18, 2018
We need to talk about the word “guys” and whether or not it means people. Well, to be accurate, whether or not it means people to all the people who hear it. Here’s the thing: it doesn’t. Not to all of them. Maybe it does to you. I used to think it did to me. But now I’m not so sure it ever did. And for sure, there exist some people to whom it doesn’t. Take a look at this really non-scientific poll in which only “hey guys” was actually considered gender neutral: . There’s a whole section of the #include<C++> resources about the word “guys”.
But let’s rewind for a minute. If you’re a man, you may not have noticed, but in North American and English-speaking European cultures, two things are true, to the vast majority of people:
- Men means people
- People means men
As a woman, this is something I have come to learn. Men are people. Women are a special case. People often doesn’t include women. If you think that’s ridiculous, please react to this sentence:
On average, people have slightly less than one ovary
This is an adaptation of a sentence I heard to explain why average is not always a useful measure of a data set. I first heard it as “slightly less than one testicle.” When I told it to someone else, I substituted a feminine anatomical feature, and to my surprise, the man I told it to reacted very angrily. Since then, I’ve tried both versions of the sentence on various people, men and women (I haven’t tried it on the few nonbinary people I’ve met.) When you say testicle, everyone laughs. When you say ovary, women pause for a moment and then laugh. Some men laugh but most get angry. Why? Because people in general don’t have ovaries. Only women have ovaries, and when most people say people, they really mean men, who generally speaking are ovary-free. So this sentence includes a reminder that “the word people includes women and there are as many of us as there are of you.” Which upsets many men. And while they can’t explain their anger, it’s real. It’s actually a little scary.
Yeah but, come on, I can’t possibly mean that, right? I mean it’s 2018. How can “people” possibly mean men? Take a look at these quotes from reputable medical sites:
The American Heart Association says “People at high risk of heart attack should take a daily low-dose of aspirin (if told to by their healthcare provider)” and that “heart attack survivors regularly take low-dose aspirin.”
The Mayo Clinic says, to a nongendered “you”, “If you've had a heart attack or stroke, your doctor will likely recommend you take a daily aspirin unless you have a serious allergy or history of bleeding. If you have a high risk of having a first heart attack, your doctor will likely recommend aspirin after weighing the risks and benefits.”
But it turns out, as WebMD says, “when it came to preventing a first heart attack, different trials got different results. Why? Studies that looked predominantly at men found that aspirin helped. Trials that looked predominantly at women found no effect.” Yet the general-purpose medical web sites are still advocating that “people” should do something that in fact is only helpful for men, rather than for people.
You can see the same thing in almost any store: razors and women’s razors, lego and girl’s lego, hammers and women’s hammers, even laxatives and women’s laxatives. The default person is a man. Women are a special case and are not always included in the general “people.”
Or take a look at these headline examples from a blog entry I recommend reading in its entirety:
- ...there are so few able-bodied young adults around. They have all gone off
to work or look for work, leaving behind the old, the disabled, the
women and the children. [so women are not able bodied young adults?]
- A 45-year old man has been charged with assaulting his next-door neighbour’s wife [doesn't she live next-door too?]
So, if people means men, then even if guys also means people, it still means men. So we can argue whether “guys” is or isn’t gender neutral, but for an awful lot of both men and women, “people” isn’t even gender neutral. I think it’s fair to say, though, that guys is even less gender neutral than people.
The key is this: you might mean to include women when you say guys. And most of the room might hear it as including women, too. But some of them will not. And you can’t tell who feels that way. So eliminating “guys” from your vocabulary will improve the experience of listening to you for some people.
How can you do it? What can you say instead? Well in a lot of cases, you can just drop it. For sentences like “What do you guys think?” “What I’m here to show you guys today is” and the like, you can just use “you.” Sometimes you might want “all of you”. “Some guys think” can become “some people think” or get more specific – “some developers think”, “some managers think”, “some customers think” – you’re not only eliminating an irritant from your talk, but you’re being more precise and conveying more information. And you’re avoiding “people” which, as I’ve shown above, isn’t actually gender neutral to most of those who hear it.
If you’re talking in the singular, this becomes even more important. “Some guy asked for this feature so it got added” or “you know somewhere the guy who wrote this is thinking” or “I need a guy from your group to take the lead on this” is just always wrong. Yet the more you say “guys” to mean “bunch of people of whatever gender, I don’t care about gender”, the more you will say “guy” to mean just one person, and those who hear you will hear gender. Instead, you can’t go wrong with “someone”, or again being more specific – the developer who wrote this, for example.
The hard part isn’t figuring out how to reword the sentence to avoid the word guy or guys. The hard part is breaking the habit. I’m working on it, because I think it’s worthwhile. I encourage you to work on it too. Chances are, no-one will ever notice. That’s the thing about politeness and taking the time to be sure you’re not bumping someone with your elbow. No-one ever got off a plane and tweeted how great it was that the person next to them kept their elbows to themselves, or smelled ok, or was quiet. But it’s still worth taking the effort to be the great seatmate, and in the same spirit it’s worth taking the time to change your speech patterns a tiny bit so that some of your listeners don’t feel excluded.
© Copyright 2020 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820
| Page rendered at Sunday, July 05, 2020 3:40:55 AM (Eastern Daylight Time, UTC-04:00)
On this page....
Pluralsight Free Trial
Click Start a FREE 10-Day trial