CppCast - Grace Hopper Conference

Episode Date: October 19, 2017

Rob and Jason are joined by Gina Stephens to talk about the C++ Foundations presence at the Grace Hopper Conference, the St Louis C++ Meetup and a proposal for a new access specifier. Gina Ste...phens is a software engineer with over 20 years' experience, 13 of those years leading development teams. Most of her experience has been with C++, in addition to Java, .NET and various scripting language. The breadth of her development experience includes DOD, FDA, DOI, Hospitality, and Finance. Gina has a Bachelors in Computer Science from MS&T in Rolla, MO and a Masters in Computer Science from the University of Missouri – STL. She also founded and runs the STL C++ User Group. Gina is also a Desert Storm Air Force veteran during which she worked on the B-52 bombers that were carpet-bombing Iraq. She is happily married with 2 sons, both of whom are serving in the US Navy. News Facebook Has Been Working On C++ Modules Support For GCC A Branchless UTF-8 Decoder Interactive Auralization and Visualization of Sorting Algorithms Trip Report JetBrains at CppCon Gina Stephens Gina Stephens Links Grace Hopper Celebration St Louis C++ Meetup Sponsors JetBrains Hosts @robwirving @lefticus

Transcript
Discussion (0)
Starting point is 00:00:00 This episode of CppCast is sponsored by JetBrains, maker of intelligent development tools to simplify your challenging tasks and automate the routine ones. JetBrains is offering a 25% discount for an individual license on the C++ tool of your choice, CLion, ReSharper, C++, or AppCode. Use the coupon code JETBRAINS for CppCast during checkout at jetbrains.com. Episode 123 of CppCast with guest Gina Stevens recorded October 12th, 2017. In this episode we have some fun with sorting algorithms. Then we talk to Gina Stevens from the St. Louis C++ Meetup.
Starting point is 00:01:19 Gina talks to us about the C++ Foundation's presence at the Grace Hopper Conference. Welcome to episode 123 of CppCast, the only podcast for C++ developers by C++ developers. I'm your host, Rob Irving, joined by my co-host, Jason Turner. Jason, how are you doing today? Doing good, Rob. I've had a busy week. Yeah, you've been doing some traveling, right? Yes, well, to not go into terribly too much details, I guess those of you who follow me on Twitter saw that I just posted a video of watching a SpaceX launch from Florida. And, well, I just got back home from that trip to Florida like 10 minutes ago to start recording this episode.
Starting point is 00:01:59 That's awesome. And those are the rockets that are going to land back in the middle of the ocean, right? Yeah, the first stage booster, at least. I know they're working on the second stage also. It just lands itself right into a barge in the middle of the ocean. Not that I saw any of that. I just got to see the rocket go up from a few miles away. That's pretty cool, though. Fun fact, I think my brother does work on the SpaceX program. Oh, wow. Oh, wow. That's pretty cool, though. Fun fact, I think my brother does work on the SpaceX program. Oh, wow.
Starting point is 00:02:25 Oh, wow. That's awesome. Yeah, he's a CAD designer out in California, and I think he was contracted to do some design work on that program. Well, that's pretty darn cool. Very cool. Okay, well, at the top of our episode, I'd like to read a piece of feedback. This one, we got an iTunes comment from Ricky Ticky Tommy saying, CPV cast is a pleasure to listen to.
Starting point is 00:02:50 I've learned things that have directly applied to my job. Thanks and keep up the great work. So, yeah, that's always great feedback. I'm glad that the show is actually useful instead of just being fun to listen to. That is nice to hear. Yes. Yeah. Well, we'd love to hear your thoughts about the show as well.
Starting point is 00:03:08 You can always reach out to us on Facebook, Twitter, or email us at feedback at cpcast.com and don't forget to leave us a review on iTunes. Joining us today is Gina Stevens. Gina is a software engineer with over 20 years of experience, 13 of those leading development teams. Most of her experience
Starting point is 00:03:24 has been with C++ in addition to Java,.NET, and various scripting languages. And the breadth of her development experience includes DOD, FDA, DOI, hospitality, and finance. Gina has a bachelor's in computer science from MS&T in Rolla, Missouri, and a master's in computer science from the University of Missouri, STL. She also founded and runs the STL C++ user group. Gina is also a Desert Storm Air Force vet, during which she worked on the B-52 bombers that were carpet bombing Iraq. She is happily married with two sons, both of whom are serving in the U.S. Navy. Gina, welcome to the show. Well, thank you. I appreciate it. I've been a fan for a while, so this is really an honor to be part of the show. I appreciate the opportunity. Thank you very much.
Starting point is 00:04:04 Oh, it's great to have you on. You know, Gina, when Rob was reading your bio, I was hoping that the three letter agencies would just keep going. I wanted to hear like ten of them in a row. It's like a whole alpha belt, right? Yes.
Starting point is 00:04:20 So obviously DOD is Department of Defense. DOI is that Department of Interior? That's right. That's correct. I worked for the U.S. Geological Survey in Rolla while I was going to school. Oh, that sounds cool. I am actually curious about the work you did with the B-52s, though. I was an avionics mechanic, so I worked on it. Are either one of you familiar with a B-52? You ever see a B-52 before?
Starting point is 00:04:43 I've never seen one up close, but I'm familiar with the plane. Yeah. I want to think I've seen one. Inside the cockpit, there's upstairs where the pilot and the co-pilot sit. And then downstairs is where the radar nav and navigator sit. So I worked on about 80% of the equipment they touch. So all the navigation equipment, and there's redundant navigation equipment on a B-52. So there's like three different navigation systems. And then also I worked on the infrared system and the steerable TV that's on the B-52 as well, as well as the radar.
Starting point is 00:05:18 Wow. So were you like actually on the B-52 while I was going to Iraq, or were you doing like maintenance afterwards? No, I worked in the shop. So we, I was actually stationed in Guam during Desert Storm. So I had a pretty, pretty good Desert Storm experience. Unlike, you know, some friends of mine who were in the army and they were there in Daharan, for example. So, yeah, I worked on, I was in the shop working on components and i would do periodic
Starting point is 00:05:45 phase inspections on the b52 when it was in the hangar so is that mostly like hands-on like electronics kind of like i mean like you were repairing electronics and maintaining electronics directly or was it from like a software perspective no it's from a hardware perspective actually repairing the the components that come off. So when I say components, I mean if you can imagine like a navigation system would be like an 80-pound component that we'd have to pull off and run diagnostics on and repair it. Wow. That's really interesting.
Starting point is 00:06:20 Yeah. It is, yeah. It was a great tour. I mean, I ran out of high school, and I would totally recommend it tour i mean i read out of high school and i would totally recommend it to anyone who was getting out of high school weren't quite sure what they were going to do i always knew i'd go back to computer science but i wanted a little bit of adventure first before i went back to school okay yeah well uh we have a couple news articles to discuss gina uh feel free to comment on any these, and then we'll start talking to you more about the conference you attended recently.
Starting point is 00:06:48 Sure, yeah. Okay, so the first one is Facebook has apparently been working on C++ module support in GCC. And I hope this is pretty interesting, and it means that, if I'm not mistaken, will have Clang, GCC, and MSVC module support in a somewhat near timeline? Sounds like it. Yeah, I mean, LVM is already there, and I believe MSVC is already
Starting point is 00:07:15 there in the latest Visual Studio. It's just, it's not a thing that I've been keeping up with, modules. This keeps happening, doesn't it? How often have we talked about modules? Someday I'm going to have to try to use them. Yeah, and
Starting point is 00:07:31 just to give a preview of our next guest, we'll be talking about someone who's a little skeptical about modules, right? Yes. Gina, have you worked... Oh, go ahead. No, I was going to say, we had a presentation at my C++ meetup. John Foltz did a presentation on modules.
Starting point is 00:07:50 Personally, it's not the one thing that I'm excited about C++ 20. I mean, I'm more excited about concepts than I am about modules. I mean, I'm sure they're useful if you need them, but I've never worked with a system that I actually saw a benefit of using them. Okay. Okay. And then this next article is someone wrote a branchless UTF-8 decoder. And this is a really long article, and the code is actually done in C.
Starting point is 00:08:21 So I haven't read any C in a while. It was a little bit difficult to look at, but pretty interesting that he was able to do this and be completely branchless. That was pretty cool. Kind of a neat hobby project. Yeah, I looked at the code just because I was curious, and I actually threw it into Godvolt online compiler to see if there's truly any branching. Now, there's a few jumps, but I don't know if...
Starting point is 00:08:47 I guess he's assuming that... I guess he means by branchless there that it's truly... There's no explicit branching, I guess, is what his point was. Right. So you're saying the compiler is generating jumps if you look at it from that perspective. Right. And to your point, yeah, I only looked at the output
Starting point is 00:09:04 of the one compiler. It was G 7 2 i believe yeah i haven't spent very much time looking at this it'd be very interesting to see what it's doing yeah and the next one uh this isn't an article but it's kind of a neat little tool I found and it's called tone of sorting. It's an interactive oralization and visualization of sorting algorithms. So basically you can choose between all these different sorting algorithms, you know, bubble sort, quick sort, and choose how many different items you want to sort through. And it just creates this little, you know, kind of step ladder of little columns of a different height and it goes through the process of sorting them according to the different algorithms behavior and it's just kind of cool to see you know visually how
Starting point is 00:09:57 these different algorithms work and it's kind of fun to listen to yeah this is where i need to make a confession now so as i I said, I like literally got off, got back to the house like 10 minutes ago. And, uh, well, I knew that I had about 10 minutes to look over the news items real quick. And, uh, I got to this one and I couldn't get past it. I just sat here watching this thing, sorting different... It's fun. It's pretty cool. Is that tune going to be stuck in your head next time you're doing a quicksword or a bubble sword or anything like that? Wow. Coming along.
Starting point is 00:10:35 And I have to admit, you know, I'm by far not, I'm not the algorithms guy. And I've never heard of cocktail sort or gnome sort. Yeah, that one. Yeah, this has some weird ones. Never heard of gnome sort either or the cocktail sort or gnomes no yeah that yeah this has some weird ones never heard of gnome sort either or or get the cocktail sort but uh yeah these things are fun to watch the cocktail sort's fun though it's like a bubble sort that ping pongs yeah go ahead all of our listeners need to click on this link and entertain themselves for the first hour of work once they get it just yeah pause the episode right now go find the show notes and watch this run
Starting point is 00:11:10 through at least once i highly recommend it yeah i was like a cat with a laser pointer watching that i'll tell you okay and last one uh we got another cppra report. This one being from the JetBrains C++ team. Anastasia Kazakova wrote this one up. And it's interesting to see their perspective. She talked mostly about the keynotes and also a little bit about some of the talks.
Starting point is 00:11:38 They talked about some of the recent guests we've had, actually, like Charles Bay talking about Stood Error. And Tony Vanier, Postmodern C++. I'm really looking forward to that one going online. Yeah. I need to watch the second part of that, if you will, the CppCon version, since I saw the C++ Now one live.
Starting point is 00:11:59 Yeah. And they also highlighted the talks done by the JetBrains team, including two from Anastasia, two from Phil Nash, another one from Yvonne Sorokin, I guess is another evangelist they have. Okay. Yeah. Okay. Well, speaking of conferences, Gina, you were recently at the Grace Hopper conference. For listeners who haven't heard of that one, could you tell us a little bit about it? Yes, absolutely. So the Grace Hopper Conference is a celebration of women in technology. It was named after Grace Hopper, who was really a pioneer in the computer industry. Not only was she the first female Navy admiral, but she was also the person who most notably coined the phrase bug.
Starting point is 00:12:47 So there's a bug in the software. But more interestingly is that she conceptualized the idea of programming languages. So you kind of wonder without her if we'd even have C++. So Admiral Hopper passed away in 92, and a few years later, the Anita Borg Institute decided to produce the conference. And so the conference has been going on for about 20 years. As the name suggests, it's a celebration of women in technology to really highlight the contributions of women to the industry. But, you know, it's definitely not just open to women. Men, you know, are certainly welcome to attend.
Starting point is 00:13:28 In fact, there was, I'd say about 15% of the attendees there were men. And I also invite your listeners, you know, if they've never attended, to attend the conference because it is really a great experience. And also, one thing I'd like to challenge you to or your listeners is that, you know, the C++ community has really a wealth of talent. And I think it would be really wonderful if we could share that talent with the Grace Hopper attendees. To my knowledge, I don't know of any, you know, anybody from the community who's actually done a presentation at Grace Hopper.
Starting point is 00:14:08 It doesn't mean they don't exist. It hasn't been done, but it would be nice if we could give a presentation. Someone from the community can give a presentation about the community, about C-plus, what's interesting about it. Because the majority of the people that attend the conference are in college. And in my experience, you know, they're not really introduced to C++ until later, until the more advanced computer concepts, computer classes. And pretty much after that, after academia, they're not really, you know, using it. It seems like the majority go on to Java or one of the.NET languages.
Starting point is 00:14:47 So this is the best time, in my opinion, to really bring them into the community and really get them interested and excited about C++ is to basically get them when they're young and they're just starting their career. So anyway, that's my get- my soapbox so what what sort of uh you know conference talks do you have at the grace hopper conference um since it's not like focused on any one programming language or uh technology it's kind of just you know women in tech is what you're saying so what are the different talks like well there would be's different tracks. So there's the career track. For example, you want to be on a board.
Starting point is 00:15:29 How would one get onto a board for a company or a nonprofit? There's also technical tracks. For example, I work for Thomson Reuters, and there's people there from Thomson Reuters who talk about big data and what we're doing with big data. So it's really a real, there's a huge spectrum of the information that's covered. So anything from software that's related to software development to tools for testing to where the industry is going. So it's not focused on just what are women doing in technology.
Starting point is 00:16:09 It's focused on technology. The subtext is what are some of the contributions that women have made. So I don't want people to think it's focused on women in technology. The focus is technology. So if you can imagine that breadth or that spectrum of information that gets disseminated at the conference is pretty vast. So how big is this conference? So this year we had 18,000 people, and they were totally sold out. And every year it gets bigger.
Starting point is 00:16:40 So this year it was 18,000. Last year I think they had between 15,000 and 16,000. So it year was 18,000. Last year, I think they had between 15 and 16,000. So it is continually growing. And women from all over the country attend this conference. In fact, the first time I attended was three years ago. I got to share this story because it's hilarious. Three years ago, it was in Minneapolis. And one of the things they do to really create, you know, community during the the conferences they have these uh they have these dances so if you can picture this they they played the wobble and there was women in full burka doing the wobble on the dance floor it was the most it was the most awesome thing i've seen
Starting point is 00:17:17 in my life if you if you know what the wobble is it's hilarious look it up on youtube if you don't it's hilarious but people in full burka doing the the wobble on the dance floor it was it was uh something i'll never forget that's for sure that sounds i mean you know i go to a conference of 600 a thousand people and i'm like this is just overwhelmingly big there's no way i can you know possibly even find all the people that i know here in the community i can't even imagine a conference with like 18,000 people at it. Oh, yeah. And it was very well, I mean, there was about 300 vendors there, not just universities and nonprofits, but some notable private organizations as well,
Starting point is 00:17:59 like Facebook, Google, Oracle, Disney was there. I mean, the list goes on and on. What were some of the keynotes like? Well, unfortunately, I didn't get to see the keynotes because my focus was running the booth. I felt this was the first time I've ever personally ran a booth at Grace Hopper, so I wanted to focus on that. So I didn't get to see the keynotes, but I can tell you that one of the keynotes was Bill Gates's wife, Melinda Gates. She was there.
Starting point is 00:18:33 She delivered one of the keynotes. So with you running the C++ booth, what sort of presence was there representing C++? So the C++ Foundation went in as a platinum sponsor. And what that means is they get an exhibitor's booth, which was built out and set up in the exhibition area. This is the area where you can really interact with the attendees. And also they were allowed to have an interview booth, which normally is used for those companies that are hiring or looking for,
Starting point is 00:19:09 that are offering employment opportunities. That would be the spot where they can have some privacy and talk a little bit more privately to the potential candidates. So for our exhibitors booth, so this was the first time, like I said, this was the first time like i said this is the first time the foundation of the grace hopper i really wanted a concept that you know was visually appealing would draw people to the booth you know uh with had an element of fun but also i wanted to convey time and progression of the c++ language so i had So I had some pretty good high-level requirements. So the concept that we came up with, my design team, I think, nailed it.
Starting point is 00:19:50 We went with a Pac-Man 80s arcade theme. And so, you know, 80s arcade theme, if you think about the colors that are in the Pac-Man game, you've got the bright yellow, the pastel, blues and pinks, et cetera. So visually, it was arresting right drew people to the booth and then the whole idea of a game is you know adds an element of fun to it but in order to convey time and and progression of the c++ language you know one of the activities we had was an upright working pac-man game just like you would have seen in the 80s arcade, and also an Oculus Rift experience. Oh, nice. So if you think about the original Pac-Man,
Starting point is 00:20:32 it was written in C, which is kind of the root of C++. And if you think about the Oculus Rift experiences, you know, the entire platform SDK is written in C++. So you can get it, you have a visual, you know, of where C++ started, as well as where we are today. So you have a visual of where C++ started as well as where we are today. So you have a visual of the progression of the language as well as a sense of the longevity, how long we've been around. From our root, Pac-Man,
Starting point is 00:20:56 which questionable graphics compared to today, compared to the Oculus Rift experiences, that seamless graphics and pretty cool, pretty cool experience. So I think that those two items really conveyed the time and the evolution of the language. One of the activities that we had, hands down, was the absolute favorite, was just an old school trivia game. So what we had was a black table. It's actually kind of funny. Black table is decorated to look like a Pac-Man game.
Starting point is 00:21:35 And there were these yellow cardboard discs, right, about three inches in diameter. And the game was you had to flip one over, and you had 90 seconds to read the question and answer as many questions as you could. And, you know, if you did well, you got a prize. So I'm going to see how well you guys would do. So I'm going to ask you two a couple of questions. Should we just yell out answers or something? That's right. Just yell them out.
Starting point is 00:21:54 Just yell them out. So one of the questions was, what is the C++ feature that is equivalent to Java generics? Templates. Yes. Oh, he's, uh. Yes. Uh-oh. Uh-oh. Rob won, Jason zero so far. Not that I'm keeping score.
Starting point is 00:22:11 Okay, the next question is, what is the name of the Java mascot? Oh, Duke. Java has a mascot? Duke, right? I know, that's what a lot of people say. Yes! Oh, wow.
Starting point is 00:22:22 Jason, you're literally the only person who got that. Nobody at the conference got that. We had some people that had been in software for a while. You're the only person to have gotten that answer. I first used Java in the pre-1.0 days in 1996. Okay, this next
Starting point is 00:22:41 question, I think one person in the whole conference got it right, and it might be my wording, so I'm going to throw it at you, too. What is the term for source code that looks like there's a design problem? Code smells? Yes. Congratulations. Nice one. Okay, wow.
Starting point is 00:23:02 Good job. See, you guys would have done very well. You guys would have won a book. If we had been operating as a team. So yeah, hands down, it was the favorite. Definitely a favorite. In fact, some of the feedback that we received from some of the attendees was, we made, this is an actual quote,
Starting point is 00:23:23 we made C++ fun and that's not easy to do. So yeah, I think this, I think the booth was a success. I was not sure what to expect going in. And, uh, you know, we got, we were busy. There was a constant flow of people. We had about a thousand people through our booth. If you think about that, a thousand people and you know seven hours the first day seven hours the second day even if i round down and say it's only 900 so seven seven and then like the last day is only like four or five hours so you're talking what 19 hours you're still talking about 50 people an hour coming through the booth i mean it was constant it was constant it was just it was so yeah i was really excited to see that kind of response and people love the giveaway. So one of the giveaways
Starting point is 00:24:08 that we gave was a drawstring backpack with the C++ logo and people loved it. I mean, they wanted, they wanted more stuff. They requested more things with the C++ logo. They absolutely loved it. Yeah, it was, it was a great experience. I'm really curious about this. You said you had an interview space available since it was a platinum sponsor.'m really curious about this uh you said you had an interview space available since it was a platinum sponsor did you make use of that actually yes we did some customization because you know i'm you know clearly there's no paid positions at the foundation but i wanted to utilize the space since it was part of the the prop the you know part of the package so we i customized it to look like a, basically a, you know, talk show set.
Starting point is 00:24:48 And actually there's a, if you go to YouTube, the CBP Con channel on YouTube, there's one interview that I was able to use. And if you look at that, in the back is the map of the C++ users groups worldwide. So that was the backdrop. And then we had a couple of armchairs and a coffee table. Unfortunately, we were so busy with the exhibition booth and people constantly coming to the booth. And then there's not many people that were willing to sit down for an interview. I think we did two interviews
Starting point is 00:25:25 and there was only one that we could actually use. And then as I was looking at the recording afterwards, the sound was like really horrible. And so, you know, I still wanted to have something up there just, you know, to show that what we were doing at the conference. So I went ahead and uploaded anyway, but I mean, it's, you know, the, the sound is, isn't, isn't ideal. I did watch that one interview that you posted, and I was very happy to see that the woman you got to interview with was from my alma mater, the College of New Jersey. Oh, neat.
Starting point is 00:25:55 Okay, yeah, Victoria, she was great. And, unfortunately, I didn't get to her last name. And the other interview we did, she, it was so, you know, at the start of the interview the the cameras just completely went out so um and i tried to get her back to see if she would come back and do another interview but i couldn't find i mean in 18 000 people i can't understand why i couldn't find her well rob and i can definitely um commiserate on the possibility of recordings not always working out how you would like them to. Yes.
Starting point is 00:26:30 Yes. Exactly, yeah. So did you get a good sense from the attendees? Were a lot of them really interested in C++? Because I know we always worry that in academia today that they do seem to be focusing on teaching JavaScript and C Sharp and not really spending much time with C++. Absolutely. I mean, the people that won a C++ book, we had books donated from both Pearson and O'Reilly Publishing. And I tell you, they won a book and you would think that they won the lottery and they were so excited to get a book, you know, it was great. But what was interesting
Starting point is 00:27:10 to me, and I, please don't send me hate email, uh, because this is what I'm, I'm not saying this, but there was a couple of people that thought that the terms that were used, they thought C++ was obsolete or dead, or, um, what was it? I'm trying to think of the other term they used. And there was a couple of people, I mean, different people. And I was, I mean, it was only a handful, but still even one seemed too many. It's like, I don't know where this myth is coming from. But I assured them, no, it's not dead. No, it's not obsolete.
Starting point is 00:27:39 It's a living language. And, you know, to their point, I guess, when you don't have a change to the standard in 12 years, I guess that's where that kind of misconception kind of originates. But now that we have, the plan is to have an update every three years, I think that's going to dispel those misconceptions. Yeah, I've also gotten comments many times
Starting point is 00:28:04 that are like, well, is C++ even used for anything anymore? Like, yes. Yeah. Yeah, it was actually kind of funny to hear that feedback. It's like, yes, it's used. There's like millions of lines of code. I don't think there's going to be anything to replace it anytime soon. So definitely a living language.
Starting point is 00:28:27 I'm curious then what kind of response you got after you told them, yes, it is living, yes, the language is still growing and still being used. Well, I explained to them that I think, well, from my assumption that the misconception is coming from the fact that there wasn't a change in the standard. I told them, I said, well, we just released c plus plus 11 three years ago c plus plus 14 uh we just released that three or six years ago and three years ago c plus plus 14 and you know c plus plus 17 just released and c plus plus 20 is in the work so i conveyed to them yes there's still work yes there's a foundation a standardizing bodyizing body that's working behind the scenes to keep the language moving and keep it growing and keep it evolving.
Starting point is 00:29:13 Okay. Okay. That makes sense. Yeah. So as we mentioned in your bio, you also founded the C++ Meetup in St. Louis, Missouri. What motivated you to start the group? Completely selfish reasons. You know, I'm one of those people that have a lot of irons in the fire. So, you know, I didn't have the time to do what I consider necessary research, like what's
Starting point is 00:29:41 trending, what are the changes coming up in c++ etc and i was always amazed by the people that i worked with that just seemed to have so much knowledge and just about about so many different things and i was like well what how can i fill this hole what i felt was a hole in my education my you know my own education so um i had i had heard that there had been c++ meetups youups in other parts of the country, but there wasn't one in Missouri. There wasn't one in St. Louis. So that made me sad. So I decided it was time that there was one in St. Louis. So that was my motivation. Again, completely selfish. I wanted to fill a gap that I thought was my own education. And so we've had this meeting going on for,
Starting point is 00:30:27 this group going on for about three years. And I tell you what I love about the meeting, our group, is that there's so many people with such a diverse perspectives, background, and experience that, I mean, it's just amazing the type of talks that we've had. And to me, nothing's off the table as far as what people want to present you know it could be another programming language it could be just whatever you think as long as it's technology related just you know I really want it to be a community involvement I don't want one person up
Starting point is 00:30:56 there every month and you know giving a presentation because what I feel you lose is you lose you lose the benefit of having so many diverse perspectives. So I try to get people, even people, the quiet ones that sit in the back, it's like, really, if you want to present, even if it's 15 minutes, something, something that sparks your interest.
Starting point is 00:31:18 So we've had some really great conversations. In fact, we had one of the members, John Foltz, he presented on Rust just a few months ago. And it's been, I mean, we've had some really great presentations next month. We're going to have one on concepts, which is coming up in C++20. So some really good stuff, really good material that we've covered. So how many people do you end up getting regularly to your meetup? I think we have a solid 10, 10 that are regulars, which, you know, when you look at the meetups in the Bay Area in
Starting point is 00:31:53 California, I mean, from what I was told, there's like hundreds of people. But for our area, you know, I think 10 is a pretty good number. And we get new people on occasion. But yeah, 10 solid people that are pretty regular. Yeah, I think that's more than we have for regulars right now in Denver. So, yeah. I looked at the schedule and it says you just gave a talk yesterday about Grace Opera and about Merkle Trees, which is a data structure I'm not familiar with. Yeah, actually, it's, it was my own rudimentary research into it, because one of the technologies I'm interested in is blockchain. And I, and during my just, my research on
Starting point is 00:32:39 blockchain and how it works, and etc, I kept seeing this, this term. and so I did a little bit of research on it. And Merkle tree is named after Ralph Merkle. He patented the idea in 1979. And it's a hash tree. During my presentation I showed a binary hash tree, but it doesn't have to be binary. It can be any number of children. But it it's really used in if you think about computer systems that transfer data between you know to other systems it's a way of you know the data integrity becomes an issue so it's really of validating if you will on the data between systems so if you will, the data between systems. So if you think about peer-to-peer networks
Starting point is 00:33:28 like Bitcoin and Ethereum or distributed source code repos like Git, different applications, but they have one thing in common. They need to be able to verify the data that they're receiving from a peer. So the idea is that a peer can validate an entire Merkle tree just by the root. So you have the data, which is the thing that you care about, that you want to keep in the leaf nodes. And the non-leaf nodes are hashes of the children.
Starting point is 00:33:59 So you can validate the entire tree just given by the root, or you can validate a branch of the tree given a non-leaf node. I'm imagining all kinds of rigorous proofs have been done on these things to show that you're actually proving the thing you think you're proving when you're using them. Right, exactly. So it's a way of verifying that what you have is what you think you have. Okay. Yeah. But what's neat, like I said, what's neat about our meetup is that, you have is what you think you have. Okay. Yeah. But like I said, what's neat about our meetup is that, like I said, there's a lot of diverse experiences. And during my meetup last night, one of the members, John Foltz, he's just one of the gurus on the team, in the group.
Starting point is 00:34:42 And he actually has, you know i what i presented was what my my just my basic research but turns out he uh had more experience he was using it at his work and so he had a real world experience so it's like okay now it's your turn to present merkle trees literally just hand it over because that's the type of thing that people need to see and you know to learn and i know that's how i learned, by seeing a real-world experience. So it was great that he was able to basically backfill my presentation. Yeah, that's cool. That sounds like a great group.
Starting point is 00:35:14 Yeah, they are. So you made a proposal for a new access specifier a while back. You want to tell us a little bit about that and the problem you're trying to solve? Right. So in my case, so we have, you know, as everyone knows, we have public, protected, and private. And I had gotten this idea from my work in Java. Java has something similar. I think it's a default access. And so what I wanted in C++ was an access modifier that with any object within the same namespace would have access to my object so in my case my specific case I was using dependency injection and pimple and so if you think about that you know my setter had to be public you know it's gonna be called outside of my class, so public was the only thing reasonable.
Starting point is 00:36:08 Private obviously didn't make sense because it has to be called from outside externally, and protected really didn't make sense because I didn't want to have to subclass the class in order to be able to call my protected method. So, and I didn't want to, I didn't, I didn't need that type of coupling. That's the highest form of coupling. And it didn't make sense in my case. So what I thought was, well, if I could have something that was, you know,
Starting point is 00:36:35 an access that's specific to a namespace, then, you know, it's clear to my mind, it was clear that this isn't something that clients should be calling. If I call it public, if it's public access, then anyone can call it. And I don't want to convey to my client that they should be calling that. I want to convey that it's handled for them within the namespace. So that's what I was trying to figure out. I felt the existing access modifiers just wouldn't work in my case,
Starting point is 00:37:11 and I thought there was a need for a new access modifier. Would you say the access specifier is called in Java that the proposal would mimic? I think it's called default, where if you don't give it an access modifier then by default everything within that package has access okay i think there's something similar i think in c sharp you have the internal access modifier which might be that's right yeah that's right yeah so and it seems like it's a there I think there, I think just by the fact that you
Starting point is 00:37:46 have something similar in Java and C sharp, there's obviously a need for it. I mean, in my case, I was using dependency injection and pimple, um, but there could be other use cases for it. I just, right now I can't think of anything off the top of my head. I can just talk to my specific case. But in front what the interesting part was you know I didn't really write out the proposal I just submitted it to the group so that's if you look and the instructions on submitting a proposal the recommendation is to submit it to the mailing group first and so I did that and I got some positive feedback but I remember
Starting point is 00:38:23 distinctly going back and forth with Nevin and his last name, Liber, is that his last name? I think her Liber, yeah. So I remember going back and forth with him and I was getting frustrated, not at him, but at myself because I'm thinking if I can't explain it in such a way that Nevin could understand it, then there's no way in hell I have a chance of going in front of the entire committee and making my case. So I just kind of gave up in frustration. I still think it's viable, though.
Starting point is 00:38:57 I still think there's a use case for it. Yeah, I would agree that it seems like something that uh would be worth having in the standard it certainly and if it has precedence in other languages yeah i mean that by itself suggests to me there's there's other use cases other than what i've what i've experienced so um if the other languages were i thought it was important enough to add it then i would think that c c plus plus what it belongs in the C++ standard as well. That's interesting. So do you plan to continue working on this idea at all?
Starting point is 00:39:34 I do. I just don't know how to, I guess I can't make a good enough argument for it. Maybe if someone was willing to help me. How can I put it in, how can I make my argument in a standard? Except I don't know. Uh, I'm not very verbose when it comes to documentation. And so if I have to make the argument in the standard and that's the only thing that's going to talk to me, how can I make it convincing? And that's, that's still what I'm kind of struggling with. Well, let's make it a call to action to any listeners.
Starting point is 00:40:05 And if you think an internal access specifier makes sense and you have some experience with standard Ds or writing a proposal, maybe call out to Gina and see if you can help her out. That would be awesome. That would be great. So is there anything else we missed about the Grace Hopper conference that you wanted to share with us? You know, the one thing is that, again, I was serious when inviting your listeners or you two to truly consider giving a presentation at Grace Hopper. Like I said, there's a wealth of talent in the C++ community, and I think it would be a crime not to share that talent with the Grace Hopper attendees. So now I'm curious because there's 18,000 people and you said there's many tracks, but how many people would one expect to be presenting to if they presented at that conference? It depends.
Starting point is 00:41:00 It depends on, you know, but I would say the one, when I attended the sessions, there was, depending on the session, there was anywhere between 50 to a couple hundred people. Oh, okay, so not gigantic. I'm imagining like 3,000 people in each room or something at this rate. Well, I mean, because there's other tracks going on, so, you know. How many tracks were there in total? Do you remember? Oh, that's a good question. I don't remember. Okay. Okay. Well, Gina, it's been great having you on the show today. Um, where can listeners find you online? Um, I am on, uh, Slack, but I,
Starting point is 00:41:38 my email address, you can use Gina dot Stevens, two zero one seven at gmail.com. Okay. Well, it's been great having you on the show today.stevens2017 at gmail.com. Okay. Well, it's been great having you on the show today. Yeah, thanks for joining us. All right. Thank you so much. I appreciate it. Thanks so much for listening in as we chat about C++.
Starting point is 00:41:56 I'd love to hear what you think of the podcast. Please let me know if we're discussing the stuff you're interested in. Or if you have a suggestion for a topic, I'd love to hear about that too. You can email all your thoughts to feedback at cppcast.com. I'd also appreciate if you like CppCast on Facebook and follow CppCast on Twitter. You can also follow me at Rob W. Irving and Jason at Leftkiss on Twitter. And of course, you can find all that info and the show notes on the podcast website at cppcast.com. Theme music for this episode is provided by podcastthemes.com.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.