CppCast - CRTP and Israel joining the C++ ISO

Episode Date: November 7, 2019

Rob and Jason are joined by Inbal Levi. They first discuss some news including a new C++20 unit testing framework and Microsoft bringing ASAN to Visual Studio. Then Inbal talks about the Curiously Rec...urring Template Pattern and her efforts to start an Israel National Body for the C++ ISO Committee. News Doubling the speed of std::uniform_int_distribution in the GNU C++ library Benchmarking is hard: processors learn to predict branches Boost.UT C++20 macro-free Unit Testing Framework C++20 The Big Four ASAN for Windows with MSVC Links CppCon 2019: Inbal Levi "Back to Basics: Virtual Dispatch and its Alternatives" Core C++ 2019 Sponsors Write the hashtag #cppcast when requesting the license here One Day from PVS-Studio User Support JetBrains

Transcript
Discussion (0)
Starting point is 00:00:00 Episode 222 of CppCast with guest Imbal Levy, recorded November 5th, 2019. Sponsor of this episode of CppCast is the PVS Studio team. The team promotes regular usage of static code analysis and the PVS Studio Static Analysis Tool. And by JetBrains, makers of smart IDEs to simplify your challenging tasks and automate the routine ones. Exclusively for CppCast, JetBrains is offering a 25% discount for a yearly individual license, new or update, on the C++ tool of your choice, C-Line, ReSharper C++, or AppCode. Use the coupon code JETBRAINS for CppCast
Starting point is 00:00:39 during checkout at www.jetbrains.com. In this episode, we talk about a new unit testing framework. Then we talk to Inbal Levy. Thank you. Welcome to episode 222 of CppCast, the first podcast for C++ developers by C++ developers. I'm your host, Rob Irving, joined by my co-host, Jason Turner. Jason, how's it going today? I'm okay, Rob. How are you doing? I'm doing okay. We didn't mention Halloween last week. Did you have a good Halloween over in Colorado? Yeah, we had had three days of snow before that, and the sidewalks and everything were clear by the time Halloween came around, but it was still, we probably only got on the order of like 100 kids instead of the normal like 300, but yeah, it was still pretty good. Yeah, we had pretty warm
Starting point is 00:02:13 weather here. I'd imagine it would be hard to go trick-or-treating in the snow. Yeah, I mean, it wasn't, it was just cold enough, I guess, that all the kids were bundled up and whatever. It was below freezing. Oh man. Okay, well, let's talk about a piece of feedback. This week we got a tweet from Paul Drake saying a suggestion for an interesting guest, Lemire. And he sent two of the links from this person's blog for high-speed JSON parsing and stuff like this. And this is Daniel Lemire's blog,
Starting point is 00:02:46 and he's got a couple posts here. The two that they linked were doubling the speed of std uniform int distribution in the new C++ library, and benchmarking is hard. Processors learn to predict branches. I haven't had a chance to look at these posts in any depth, but I'm sure he would be an interesting guest.
Starting point is 00:03:05 Sure. Yeah. He says he's the computer science professor at the University of Quebec in Montreal, focused on software performance and data engineering. Cool. Yeah. So maybe we can reach out to him. Well, we'd love to hear your thoughts about the show. You can always reach out to us on Facebook, Twitter, or email us at feedback at cvcast.com.
Starting point is 00:03:23 And don't forget to leave us a review on iTunes or subscribe on YouTube. Joining us today is Inbal Levy. Inbal is a C++ enthusiast. She's an embedded software developer with a passion for high performance, working on real-time Linux-based systems. She also makes it a habit to dive into new OS projects whenever she can. Inbal lives in Tel Aviv and has recently traveled to Denver to give a talk at the Back to Basics track at Cppcon, hoping to infect newcomers with their passion for C++. Inbal
Starting point is 00:03:49 is part of the Israel C++ Developers Community, which makes its first steps in the international C++ world. In addition, she's also part of the organizing committee for the Core C++ 2020 conference and actively trying to bring new people into the C++ world. Inbal, welcome to the show. Hi, thank you. How are you? Doing good. There's a lot in that intro that we are going to definitely spend time unpacking once we get to the interview here.
Starting point is 00:04:14 Mm-hmm. For sure. Yeah, I see you have materials to crucify, so... No, no, no. No, I'm just kidding. Yeah. How are you, Jason? I'm doing all right. How are you doing? Great. It's nice to be in Israel back after the conference.
Starting point is 00:04:32 It was a long time away from home. You're not a fan of Denver? No, I actually really like Denver. I was also doing, like, I traveled to the Rocky Mountains and so on. It was really great. But I just sort of missed my bed and home and, you know, apartment. And I'm sure you're relating, Jason. Yes, I fully understand missing your own home and bed and everything.
Starting point is 00:04:57 Yes. Yeah, I've heard you said that you're going to stay for one month in Denver. Am I correct? I had, I think it was about six weeks total that I've been home, including the conference, before I then now, which we haven't really mentioned this, well, we've mentioned it maybe once on the show, Rob. Next week, or in two weeks, week and a half,
Starting point is 00:05:23 I don't even know anymore. I am heading to Code Dive. I'm heading to Code Dive, and we'll also be speaking at the Avast Prague C++ meetup after that. Right. So doing a little bit of Eastern Europe tour coming up here shortly, which may affect our schedule a little bit for recording. Yeah, hopefully we won't miss too many episodes, but we'll definitely do our best to work around our schedule.
Starting point is 00:05:49 Yeah. Yeah. Sorry about that. It's okay. There's more technology these days, though. You can do things from remotely. Oh, sure. Yeah, assuming you have a stable internet connection, which is not always a safe assumption.
Starting point is 00:06:05 No. On one of my recent trips, I actually had to pair my laptop to my cell phone and use international data to make an interview for a podcast episode because there wasn't stable enough Wi-Fi in the place we were staying. Well, you know what they say, home is where the Wi-Fi automatically connects. I've never heard that one. Oh, really? Not mine, though. That's funny. It's the internet. Okay, well, Imbal, we've got a couple news articles to discuss.
Starting point is 00:06:39 Feel free to comment on any of these, and then we'll start talking more about what you've been up to, okay? Sure. Okay. So this first one is a new boost experimental library called UT, which is a C++ 20 micro unit testing framework. And this is another one from Chris Jusiak who we had on the show, I think earlier this year, this must be a new one because I don't think we,
Starting point is 00:07:03 we mentioned it all when you had him on. Oh no, no. He's been tweeting about this over the last month or year. This must be a new one because I don't think we mentioned it at all when we had him on. Oh no, he's been tweeting about this over the last month or something. This is brand new. Did you take a look at it? I looked at the, yes. The way it's, I mean I didn't look at the source code or anything, but I looked at how it's generally used. And I think it's worth pointing
Starting point is 00:07:19 out that, at least as far as I am aware, Boost Experimental is just Chris Jusiusiak right it's not not actually this is another one of his libraries that he calls boost because he feels like it yeah i mean he i think he has said he's going to make some effort to get them into boost but uh yeah not not necessarily a part of boost doesn't uh require boost i don't think in any way because it's a single header include yeah it's like boosting quotation marks right yeah so just just for clarity for the sake of our listeners and yeah it does not require boost at all it's all standalone
Starting point is 00:07:56 header file but yeah it's pretty cool to see a um non-macro based unit testing framework yeah it definitely is. You said you didn't look into exactly how he was achieving that, though? I didn't. Well, I just clicked on this main source file just to look at it, and I see lots of things that I would have expected. It appears to be fully constexpr enabled. Right, right. Because, of course.
Starting point is 00:08:22 And pretty clean. Single file. 1,400 lines. That's it. Yeah. Nice. A bunch of course. And pretty clean, single file, 1,400 lines. That's it. Yeah. Nice. A bunch of lambdas. They always make everything better.
Starting point is 00:08:32 Yes, they do. Lambdas make everything better. Okay. Next thing we have is an article on Rainier Grimm's blog. And this is C++20, the big four. And I guess this is the first post in a planned series where he's going to go over all the new features that are coming in C++20. This first one, obviously highlighting kind of the most significant features that are coming, concepts, ranges, coroutines, and modules. And he also goes over what type of compiler support
Starting point is 00:09:07 you can already get for some of these features, whether you can test them in GCC, Clang, or MSVC. So I just want to say about concepts, I think this is a really good example of a great feature being added. Because, I mean, as far as I see it, it's for the compiler and also for the
Starting point is 00:09:29 developer. It's like a really good feature to my opinion. And its ability to simplify abstract ideas and, you know, have additional ways of doing things, I think it's really great.
Starting point is 00:09:47 And I'll just mention that the person that implemented it on Clang is actually Sar. And he's also from Israel. So just, you know, yeah, he was also on CppCon. And it's great. I really think it's great. He's given two talks on that, on his experience, I believe now, right? Yeah, and they're also very good.
Starting point is 00:10:11 He really inspired, I think, me as well as other people to start adding some code to compilers if they can. So it's really awesome. So are you currently working on any patches to claim yourself? I just, I tried. Okay, so I'll say that the talk that really excited me is the one of Herb Seller. He talked a lot about getting embedded developers' features into the language, and one of them was Downcast,
Starting point is 00:10:38 and I just thought it was cool, and started playing with different ways to have that with the minimal way with the minimal overheads so you know just sort of different implementations or structures that
Starting point is 00:10:57 hold the types and so on so I just played with it you know for a while. And downcast is the, I'm trying to remember. It's like a dynamic cast that can only go to the right way. Okay, so it doesn't have RTTI overhead. So as far as I know, there's no, like, still no implementation, but I think it shouldn't have, yeah.
Starting point is 00:11:32 That's what I think, you know, because it's, yeah, so it's just an idea. So I'm just trying to play with it and maybe, so yeah, that's awesome. Yeah, very awesome. And other things that Hebb also mentioned, I think they're really great. He mentioned exceptions by type, which I also think will be great for embedded developers. And in general, I just think that it felt like, you know, being thought of. It felt like, you know, he really wants more developers to use C++. So I think it's great. Okay, and then this last article we have,
Starting point is 00:12:14 we mentioned this feature coming to Visual Studio a couple weeks ago when we had the Visual Studio team on while we were at CPCon. They now have an official post about it, address sanitizer for Windows with MSVC. And this is now available if you use the preview releases of Visual Studio. 2019 16.4 Preview 2, I think. Yeah. But it's a big post that goes over
Starting point is 00:12:37 exactly what you need to do to enable ASAN support in your Windows binaries. So it's definitely worth looking at if you want to try that out. Unfortunately, it is limited to x86 right now. Yeah. They do say that they're... Yeah. Go ahead.
Starting point is 00:12:54 I was going to say this article needs an asterisk like the size of the page. Yeah. Because I don't know anyone who's making 32-bit builds anymore on Visual Studio. I mean, I'm still working in 32-bit, but I'm actually actively working on adding 64-bit support. But, yeah. But, yeah, they do say they're going to add more platforms soon. So hopefully they'll get 64-bit and maybe even ARM soon.
Starting point is 00:13:19 Right. But I don't mean to undermine their, you know, what they're aiming for here. Yeah, it's great. We want this. I just would also love to see the 64-bit support. Yeah. And for those of you who are curious, it's enabled exactly the same way that it is on clang.
Starting point is 00:13:36 Slash F sanitize equals address. So it works the same way as clang and GCCs. And I think it's probably still the same actual implementation. Because as far as I know, clang and GCC share the same way as clang and gcc's and i think it's it's probably still the same actual implementation because as far as i know clang and gcc share the same implementation i think we asked them about this one in the interview uh that they share the same implementation also yeah yeah i believe it is definitely the same implementation i think they actually mentioned that they actually fixed a couple bugs in asan while they were working to add this to Visual Studio, which is pretty cool. It's an advantage to having cross-platform software.
Starting point is 00:14:08 Yep. Find more bugs. Okay, well, Imbol, you already kind of mentioned that you work in the embedded space. Could you maybe tell us a little bit more about the embedded work that you do? Sure. So I work at SolarEdge, And this is a really great place. They're doing inventors, which are actually it's in the solar energy field. And they're trying to have smarter ways to convert your energy, solar energy to electricity. And this is like the main topic.
Starting point is 00:14:46 So I'm working on a Linux card, of course. And yeah, and it's great. We have like very broad, we really support a lot of features for the users. So this is really awesome. There's a lot of end user thinking in our design and we keep uh developing and and uh there's really a lot a lot in this field so yeah so you're actually working on the software that does the power conversion is that what you're
Starting point is 00:15:20 saying uh not exactly because that runs on dsp but I'm doing more of the management part, like everything above that. Everything relates to talking with the server, giving the information to other processes. In general, we can have a few of those inverters connected together so they have to exchange information and so on so all of this is in the card that I work on. Okay you said you work on a Linux card I mean how limited is the system you're working on is it you know constrained resources do you use exceptions, RCTI? Okay, so as I mentioned in my talk on CppCon, we're really very limited in a manner that we really try to avoid.
Starting point is 00:16:18 For example, of course, we have no exception, and we really don't have a lot of dynamic allocations. We do them if we must, but we really try to avoid that in order to avoid, of course, segmentation faults and so on. And this is challenging. I mean, you have to think differently when you design your program. You have to make sure that you only do what you must. You really try to avoid any kind of overhead relates to big structures and so on. So it's challenging. So you mentioned that already that you were at CPCON 2019.
Starting point is 00:17:06 Can you tell us a little bit about what your talk was about there? Yeah, sure. So I was in the back-to-basics track, and I talked about a very old technique that is actually CRTP. But to my opinion, I mean, the talk was also, of course, about virtual table and overheads and so on. But to my opinion, a lot of newcomers to C++ language, they don't know many of the techniques that isn't exactly on the spotlight right now. So I think it's also important to have something that is considered, you know, maybe older or less in the spotlight right now.
Starting point is 00:17:53 But I think it's also cool to introduce that. So I've just, you know, showed more simpler examples and so on. But I actually was surprised there were a lot of questions and also questions afterwards, and even from people that are considered more experienced. So CRTP is not trivial and also appears in a lot of other places. So it's cool to see, you know, using things not trivially is awesome. Of course, a context pair might, you know, take this whole thing less, yeah, to be less relevant, but still.
Starting point is 00:18:39 There'll probably always be a place for CRTP. Can you describe for our listeners what that is, what it stands for? Yeah, of course. So this is a courtesy reoccurring template pattern. I'm not sure if I even mentioned that in my talk. I think it's a really cool name to start with. So this is actually using template metaprogramming in order to create inheritance on compile time. So basically you create a base template and then you inherit it. And by doing so, you're sort of creating the structure of inheritance, but on compile time. So this is really awesome. It gives really good performance. And when you care about milliseconds and so on, it turns out to be really relevant.
Starting point is 00:19:30 So this is cool. And yeah, and in general, I think it's interesting too. So when I was working on this lecture, I wasn't aware of how runtime and compile time are really a big deal in the CPP world nowadays. So I really wasn't aware of that. And then I found out that this is really a hot topic.
Starting point is 00:19:55 I even had an intro. John mentioned my talk in his Back to Basic track talk. He talked about dynamic inheritance or the normal inheritance. And he was really passionate about the fact that people are moving everything to compile time and not willing to do anything on runtime anymore. And maybe it's also a bit of, you know, a bit of exaggeration. So it's interesting, people are very passionate about this topic. And of course, with constexpr and so on. So you said you had people, a lot of people asking questions. What,
Starting point is 00:20:40 I'm curious if you recall, like, what kinds of things did people get hung up on or what were they really interested in digging into yeah so I had questions from it was actually quite surprising the amount of interest I had someone that said that he's going to show this lecture
Starting point is 00:20:59 to his students and this is awesome and especially for someone like me that had her first uh her first talk in a big conference and uh and actually in an international conference i want to i want to say that uh um core cpp is also big and you should all come to visit in Israel. So, no, but it was really awesome. And other people were just curious about the application. And there was really various reactions to that. So it's interesting.
Starting point is 00:21:41 So this was the same talk you gave at Core C++? It was a very similar one. It was a bit different because I focused on different things. I had a request from John to go more over virtual tables and so on, so I emphasized that subject a bit more, but it was a very similar one. We mentioned that this talk was part of the back to basics track which was new to cpcon this year i think maybe they did that in the first year jason is that right i don't know if they did it in the first year i know it was something they hadn't done in several years yeah
Starting point is 00:22:15 you don't you don't you can't say anything about the history of i wasn't there the first year i don't have anything to say about it yeah it makes sense but did you go to any of the other back to basics talks I think Jason one of yours was also in the back to basics track wasn't it yeah although I keep getting overlooked because
Starting point is 00:22:38 I was the intro keynote and I didn't actually have back to basics in my title oh that's misleading yeah but i i mean i mean i well i did i put it in the title because they told me to but then in the actual published schedule it wasn't in the title so i i don't know what happened there but yes i was the first talk of the sequence and then because of other obligations and reasons i didn't end up going to any of the other talks in the back to basics track
Starting point is 00:23:06 personally. But yeah, I, where I think we're both curious what you thought of the rest of the track did, if you went to any other parts of it and ball. So really I didn't have a chance also to go to many of them. I did went to John's,
Starting point is 00:23:20 as I said, and I, but I can say in general that, uh, and I also were in I can say in general that I also were in, I think I were in one when they, I forgot his name, but he came to CPP
Starting point is 00:23:33 in Israel. Anyway, I think it was really a great track. I think that maybe a big conference as CPPCon might be a bit intimidating for newcomers. So I think that maybe a big conference, a CPPCon, might be a bit intimidating for newcomers. So I think just the fact that you have a back-to-basics track is already very inviting to people to join. And also, if you want to emphasize some subject that you're not sure about, of course it's great.
Starting point is 00:24:03 But also, I just think that the fact that you have one of those is really inviting. And maybe we should have one in our conference as well. I'll consider that. Yeah. It sounds like there was discussion about having it again at CVPCon. But since you keep mentioning Core C++,
Starting point is 00:24:22 let's go ahead and ask you about your involvement. Sure. Yeah, if you're mentioning it, of course, I'll be happy to talk about it. So I just want to say that I joined very recently. Of course, Adi and Michael was the ones that started it. And I think it's a great conference, especially in a manner of a country like Israel. We do have a lot of good developers here. And a big conference that would focus everyone together, like have some kind of agenda
Starting point is 00:25:02 and put them all together in one place, it's really great. So first of all, I just want to say we still don't have dates for CP 2020. But we have community sponsorship tickets and we really invite students and all kind of people that are interested to ask for our support. We can do that. And we're probably going to do it in half a year, but I can't tell you dates for now.
Starting point is 00:25:36 But I'll keep you updated, of course. May, June timeframe again, something like that? Yeah, yeah. We have a timeframe of it probably going to be around May. We're trying to aim it to be around May and June and July at worst, but it might change. We can't say that for sure yet. Trying to avoid the hottest time of year, probably. Yeah, exactly, exactly. Makes sense. But time of year, probably. Yeah, exactly.
Starting point is 00:26:06 Makes sense. Of course, you'll be the first to know. I officially have not made any plans at all for 2020 yet. I have no idea what conferences I'm going to submit to. Well, now you have one. It has to be on 2020 because it has it on the name, so... Oh, right.
Starting point is 00:26:30 Keeping along that same line, so you gave your first talk ever at Core C++ 2019? Yeah. I mean, you'd say the first big one, yeah. First big one, okay. The first one that isn't like, you know, class in university thingy or seminars, things like that. Oh, okay. And it's really awesome.
Starting point is 00:26:56 I have to say, I have some passion for teaching. I used to do that during my degree as well. And I think it's really awesome showing people your perspective on subjects is cool. I personally, I think that C++ is a really interesting language because it really connects abstract ideas to the low level. So I think it's awesome. So I hope I was able to pass that on, hopefully. And then you already said you gave a modified version of that talk at CBPCon. How was that experience going to... Actually, CBPCon is not the largest C++ conference.
Starting point is 00:27:40 The largest one, I think, is C++ Russia. Oh, is that true? I think that's right. I don't know. But anyhow. Yeah, you know, it's all a matter of scale. So in country like Israel, it does look like a huge one. But yeah, it's definitely a bigger one than what I've experienced before.
Starting point is 00:28:03 But I have to say that, first of all, I was very happy that I was able to talk. I wasn't sure that I'll be able to pronounce words at first. So that was great. That started really, really awesome. And yeah, so I probably wasn't like the best uh presenter ever but I think I got like I was able to focus on the main subjects that I said to myself and I think be reasonably clear so um I had some I had some um some uh values like some uh color uh color key map sort of thing,
Starting point is 00:28:47 and people said it wasn't very clear afterwards. But other than that, I think it was okay. So do you have any general advice for anyone who's hoping to start getting involved and speaking at conferences and doing that kind of thing since you're fresh out of this experience? Oh, wow. Yeah, sure. First of all, I want to tell you how this went. So to be honest, I just saw a call for talks for Core CPP 19 in a Facebook group that I'm part of. It's a developer's Facebook group. And I thought that I'm probably
Starting point is 00:29:22 not going to be accepted, but I should definitely practice on writing abstracts. So I wrote an abstract of a subject that I was very interested in at that time. And then apparently I was accepted, so I went and talked there. And then some people from CppCon came and said, especially Bryce, and said that the talks are interesting and we should go and do them on CppCon. And then I was probably not going to say no to that because this is an awesome conference. So I said, okay, sure, let's do that. And then I end up on this stage. So what I want to say to newcomers is actually just do it. Because really, I think it's awesome.
Starting point is 00:30:11 And sometimes you don't think that you have much to say, but you do. And sometimes just your fresh perspective is something very valuable. So really, just as I rolled up like this, you should also try. Did you have anyone review your submission before you put it in? The abstract? Yeah, the abstract. Not really. It was like maybe just an English-speaking friend that went over this language stuff,
Starting point is 00:30:43 but nothing really, I just, it was very spontaneous, because, again, I didn't thought it would actually be accepted. So, so, yeah, so, but, yeah, but I think it's a very interesting topic. I thought that there and I also think it now. So, yeah, and you ended up i mean there was a surprisingly large contingent of israelis who came to cbp con you already mentioned sar and yourself we've had gal on gal's bomb had a dvier also very tacky yeah i thought you wouldn't be able to pronounce it so i saved you the trouble. That's fine. And there were probably, of course, Adi Shavit and probably other people that I...
Starting point is 00:31:33 Of course, Michael. I probably forget someone. Right. But a lot of them. We have a picture with Biana and... And the intelligence really continuediana and the achievement unlocked. So, yep. And I also got the signature, so, you know.
Starting point is 00:31:55 Nice. I wanted to interrupt the discussion for just a moment to talk about the sponsor of this episode of CppCast, the PVS Studio team. The team promotes the practice of writing high-quality code, as well as the methodology of static code analysis. In their blog, you'll find many articles on programming, code security, checks of open-source projects, and much more.
Starting point is 00:32:15 For example, they've recently posted an article which demonstrates not in theory, but in practice, that many pull requests on GitHub related to bug fixing could have been avoided if code authors regularly used static code analysis. Speaking of which, another recent article shows how to set up regular runs of the PVS Studio static code analyzer on Travis CI. Links to these publications are in the show notes for this episode. Try PVS Studio. The tool will help you find bugs and potential vulnerabilities in the code of programs written in C, C++, C Sharp, and Java. So one thing I wanted to ask about is right now it's a ISO C++ meeting in Belfast this week.
Starting point is 00:32:54 Obviously, you're not there, but I understand that you are working on or part of the group making an effort to get an Israel national body to go to ISO meetings. Is that right? Yeah, that's true. So the continuum of my story of rolling up to ending up on talking on CPPCon would be that someone suggested, actually, I found out that Michael Wong suggested that a while ago, but I wasn't there to know. But actually also Bryce and other people, John, have said that we should consider getting an Ezo Mirror Committee in Israel.
Starting point is 00:33:35 And I thought it would be awesome, but I also thought that it might take a while. People were not involved in the standard yet as as someone that's already in the committee uh at least most of us generally speaking but uh but it turned out that maybe like to do the first step is really the right thing to do so we are now uh we have we had a few meetings uh monthly meetings, and we're going over the proposals of, for example, we went over the proposals on Belfast. I have to say that there are two very, very interesting proposals.
Starting point is 00:34:15 I think the linear algebra proposals are exciting. I think it's really a very good case study of how to insert new features to the language. There's a lot of things that you, I mean, trying to think of it from the committee point of view, I think there's a lot of things you need to consider, like what's the scale of the code that you want to insert to the standard, and how would you make it more valuable for all developers in different fields that need to use it, special assembly implementations on different fields like GPU and so on. So I think it's a really interesting case study.
Starting point is 00:35:01 And also, of course, there are these two papers. I don't know if you're familiar with this, but there's two papers. One of BLAST that actually sort of implements BLAST. And another one that's trying to show – I think you actually had an interview with Guy, so I'm sure you're familiar with it. So another one that, as far as I see is trying to show something a bit new, maybe. And I think it's really interesting to see what the committee is going to do about it eventually. I think it's a really good time to watch this in order to understand, you know,
Starting point is 00:35:37 the way of thinking, what you should consider when you put things in the standards. So I'm really following that. And this is just part of the things that we're doing now. I also talked with the Israeli institution for standards, and they're actually very, very approving and very pro. And I have to say that, again, just from my experience nowadays, I have to say that I also have someone from SolarEdge that is involved in a committee, an international standard committee,
Starting point is 00:36:16 but in the energy field. And I think it's a very interesting thing that the C++ standard is, I think it's very different from other standards. I think usually companies enter the standard committees in order to be able to push things to their direction, maybe business-wise. And in C++, it's really different, because I think a lot of the people are there out of passion. So it surprised the Israeli national.
Starting point is 00:36:47 I think they're going to have to learn how to cope with that because I think it's new for them. So I really came to them and I said that we want to start this. And they were automatically asking what's our business aim in this and what are we trying to achieve financially and so on. So it's a new... Of course, they are very supportive. I don't know if I mentioned it, but really.
Starting point is 00:37:23 But it's interesting. I think it's getting into the standard out of passion and caring for the language and, you know, willing to make it the best is different than usual standardizing committees. So
Starting point is 00:37:39 I'm really looking forward to it and I hope that will even happen maybe before Prague, hopefully. Prague is only like November or February. Yeah, February. But maybe just signing the papers. Maybe I'm optimistic, but maybe a few of us will go unofficially also. That's also a possibility.
Starting point is 00:38:03 Yeah, Prague isary 10 to 15 2020 and of course adi and and mika michael that are also as i said they're part of the they're really uh core part of our community uh community are also very supportive so i i guess that should work out is there there anyone from your group who's already going to some of the standards meetings? So I've been to one. I know some of us have some proposals. There's actually been Iheskel, I think.
Starting point is 00:38:41 He has a proposal in Belfast. And, you know, there are small proposals and just starting our way there. But I think it's a good start. And, of course, we're trying to get some kind of protocol to have our meetings, like, you know, have some concrete conclusions and so on. So we're really building that. But some of us are involved, of course, more than me. Okay. When did you go to a standards meeting,
Starting point is 00:39:11 and did you present a paper or anything? No, no. I just went there in CPCon. I just wanted to see how things are. Yeah, I went to SG14. Right. Again, this is my passion. This is my interest.
Starting point is 00:39:26 I'm really interested in high performance. I really, really care about getting things done quickly. So I wanted to see how this works and how it looks like and so on. So it was really very, very interesting. And that's a full day of the class. Yeah, I went to half a day. But I have to say that really, really, I mean, I don't even consider myself as valuable as other people in Israel, that I think they should really put their, I mean, if they can have an opinion on the papers and comments,
Starting point is 00:40:07 I think it should make everyone have a better result. So I'm really pro. And if that would work, I'll be very happy. So what is the actual process like then at this point? You said you're hoping the paperwork will be signed. But I mean, is it like who has to sign the paperwork i guess yeah so yeah so of course there's a standards institution in israel uh and they have to get all all of uh our requests each person should uh should put his requests and then uh they um they then they have a special person
Starting point is 00:40:48 that comes and gives us a guidance and makes sure that we're doing everything right and so on. And of course, we have to be in touch with Workgroup 21 and so on. And they're very welcoming, I have to say. Like, I tried to get more information on Study Group 14, and I sent an email and accidentally got to Michael Wong. And I wasn't aware that he was the one that's going to answer it.
Starting point is 00:41:22 But also Herb Sutter forwarded the mail to him. So they were very supportive and very nice. And it wasn't really like I didn't send any official mail. It was really by accident. So I got all the suggestions on what to do and how to proceed. And they were very supportive again this is something that i really think that you can see only on on c++ world at least that i saw um that that they're very welcoming you know for diversity and and people
Starting point is 00:41:58 that are from outside of you know the immediate environments And I think it's great. It's also, as I said, I think it's great not just for the people from outside, but also for the process of thinking. Because I think new ideas can really refresh and give new perspectives. And it's very important, especially when you're dealing with standards. Absolutely.
Starting point is 00:42:27 So we wouldn't have to cancel what you did and you know like sometimes might happen yeah kind of sounds like your secret to success at the moment is to submit a paper that you don't expect to get accepted and to send emails that you don't expect anyone to respond to you think you got onto something here i think i should definitely continue this this path yeah sounds like it's working out so far yeah i know it's a it's a really
Starting point is 00:43:01 it's a really good way of doing things you should definitely do the same no really but if we're serious for one second if we'll be serious for one second I just want to say that people should really
Starting point is 00:43:20 go with their passion really suggest lectures for conferences, and you'd be surprised of how many of, you know, how much this community is willing to get new things. And it's really great. You really should do it.
Starting point is 00:43:42 Go ahead and do it. Okay. I mean, not you, because I'm sure you're doing that. You're right, though. I mean, my path to ending up on all this was simply because I didn't have enough contract work one year. So I said, well, I guess I'll submit some talks to conferences and see what happens. And next thing I know, I'm co-host of Rob's podcast. I have a YouTube channel. And I'm speaking at conferences.
Starting point is 00:44:11 And giving up your personal life. These things just seem to happen accidentally many times. Yeah, yeah. It's really, I can really relate. The way I talk, when I talk with people, I just say that I got a series of offers that I just couldn't say no to. So this is how it went. So what's next for you? Which conference are you going to next?
Starting point is 00:44:41 So I'm considering whether to offer a talk for Cpp uh on the sea right this is you may as well yeah what's the worst that could happen you have to go to england i might yeah it's terrible no i'm kidding i really like rain so no but um i'm not sure that i actually have the time to deal with that now because of all the ISO things. Right. But I actually aimed for, of course, for Core CPP 2020 and maybe CppCon. But things might change, so i still have a month to consider
Starting point is 00:45:27 or maybe a bit less do you have any thoughts on what uh talks you might propose for next year for like core cpp yeah so um i haven't like i think that i want to do something that is maybe completely new, but I'm not sure yet. I find the linear algebra proposals very interesting, so I might dig in more to that. I'd say that I have a hobby of math. I really love math. I loved it doing my degree and I love it now and I'm taking some classes and so on. So I find
Starting point is 00:46:12 it very interesting and even the part of doing like mathematical optimizations that you can because if you have information on the objects, additional information that you can, because if you have information on the objects, additional information,
Starting point is 00:46:27 that you can do some of the operations differently. So it's very interesting, I think. Yeah, it's actually like on top of, I talked with people, again, regarding the proposal of linear algebra, and it's not really related to the library, because it's a higher level. As far as I understand,
Starting point is 00:46:53 they're not planning to get things like, you can have diagonal metrics, for example, and doing the power of that is easier and faster and things like that. So I don't think they're thinking in this direction. But I think that if, for example, a library will take their implementation and add some mathematical optimizations on top of it, that could be really cool. So maybe that's something I'll think about, you know, checking or researching. Sure.
Starting point is 00:47:27 So that's interesting. It could definitely be fun. Yeah. Well, it's been great having you on the shows today, Imbal. Thank you. Look forward to hearing how the progress goes with the Israel National Body and see what talks you do next year. Yeah, me too.
Starting point is 00:47:45 Thank you very much. Thanks for coming on, Shana. Yeah, me too. Thank you very much. It's been great. It's been great. It was really fun. And come to our conference in Israel. Of course, we'll publish whenever it's gonna take place and time, but really come,
Starting point is 00:47:59 come to Israel. This is a really great place to, to travel to. And we're having, we have our community uh being really active uh and and it's fun come visit us i should i should go ahead and take the moment to say here that yes it was a great experience as a speaker that uh the conference took care of us made sure that everything was lined up as a keynote speaker not just the speaker we really you know
Starting point is 00:48:27 i gave you the proper yeah yeah it was it was a good experience great thank you i really hope that next year uh it would be just as good if not better so i just want to do a really quick round of thanks i know i said i got two things accidentally, but it wasn't. It was thanks to really great people. So thank you, Adi and Michael, for starting the notion in Israel with the conference. And are willing to get new people and really, really willing to help them. So thank you very much. I really hope that this community will continue this way. Awesome. Thanks, Simbal. Sure.
Starting point is 00:49:18 Thank you. Thanks so much for listening in as we chat about C++. We'd love to hear what you think of the podcast. Please let us know if we're discussing the stuff you're interested in, or if you have a suggestion for a topic, we'd love to hear about that too. You can email all your thoughts to feedback at cppcast.com.
Starting point is 00:49:34 We'd also appreciate if you can like CppCast on Facebook and follow CppCast on Twitter. You can also follow me at RobWIrving and Jason at Lefticus on Twitter. We'd also like to thank all our patrons who help support the show through Patreon. If you'd like to support us on Patreon, you can do so at patreon.com slash cppcast. And of course, you can find all that info and the show notes on the podcast website at cppcast.com.
Starting point is 00:50:00 Theme music for this episode was provided by podcastthemes.com.

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