>> Hi, my name is Steve Carroll
and I'm the Dev manager for the C++ team at Microsoft.
It's CppCon time again
and so we're here with another video,
where we present a visual table of contents,
of people who are giving talks at CppCon.
There's so much great content that comes out
every year from CppCon,
with it all going up on the Internet,
and we wanted to give you an opportunity to get
a really quick and concise pitch for each of those talks,
so that you can decide which ones you want to
invest more time in and learn more about.
To get started with, we're
going to do an interview with Jon Kalb.
All right John, do you want to introduce yourself?
>> I'm Jon Kalb, I am the Chair of CppCon,
and I'm happy to be here to talk about it, Steve.
>> Okay. Cool. So, what edition
of CppCon are we in currently?
>> This is the fifth year. Fifth year in a row.
So, we started in 2014, and this is number five.
>> So, I guess we're continuing to grow?
>> Yes, growth every year.
In fact, we have outgrown this venue,
and so I haven't announced it yet,
but to tell you guys,
we will announce on Friday.
That we are moving to the Gaylord Rockies,
just outside of Denver,
it's in Aurora, Colorado.
It is a hotel
that hasn't been opened yet, it'll open in December.
So, it should be well underway
by next September when we're-
>> The pre-flight all of it.
So, they get ready for C++ developers,
because we're pretty rough on place.
>> That's right. Its large enough to hold us now,
but also hold us as we grow.
It's a larger venue.
I will say I've loved the main bower,
I've loved the people here.
It's been great. I've keep teasing them,
if you guys would the make the building
bigger, we would still be here.
>> Yeah.
They've been doing this construction
which the people may be
able to see in the background here for a while there.
I can just add on another thing,
but okay Denver sounds nice to me.
So, what are you excited about this year at CppCon?
>> We have just a whole program.
We have again double
the number of people in doing posters.
The posters, I've gotten
lots of good comments on the posters.
>> Yeah. They're good this year.
>> Yeah.
Well, I would like to think they were good last year.
>> Yeah.
>> But, they're particularly good this year.
People are excited about that.
I think there's a very good feeling
people are excited, upbeat,
that's what we'd like to see,
got great comments about [inaudible] talk, yesterday.
People were excited about,
Mark's talk this morning about Houdini software.
That he won an Academy Award for.
We're really happy to have him here.
That's really cool.
We had a great weekend pre-conference classes.
Lots of great comments.
>> I heard a lot of good things about the speaking,
workshop. People told me-
>> We did a special workshop.
Normally, the pre-conference classes are two days.
This year, we had a one day class
by Andre Alexandra Skew,
Kate Gregory, and Scott Meyers.
Some of the very best speakers in our industry,
who did a one-day workshop
on how to do technical presentation.
They didn't talk about C++ so well.
They talked a lot about C++,
but it was mostly the attendees.
They did little five minute talks
and they got some feedback from that,
and they actually had some guest speakers.
They had Bjarne, Herb Sutter,
and I've embarrassed myself,
there was one other speaker
that came in as a guest speaker.
I didn't even know they were going to do that.
Somebody said yeah, I heard Bjarne
lightning talk, and it was really cool.
I was like, 'What?
What was this?' And I said,
'Yes, he was a guest speaker at the workshop.'
'Oh, I didn't know that.'
So I've gotten great feedback.
In fact, I will tell you,
I don't have permission to it,
so I'm not going to say his name,
but one of the individuals
sent an email back to
the presenters and said I did my talk.
And he actually listed he said, I did this,
I did this, I did this, and he had like five thing.
No. It's more like eight things,
and I got to talk to you I said I saw your email that you
sent and he said made all the difference.
It's much more confident,
and calm, and presented so much better.
>> Maybe we generalize out from that though,
it's this idea of,
of course it's amazing that
all of these talks are going to go up,
and you can use this little digests that we're putting
together to understand which talks you may have,
if you're here and you missed
one you can go watch it there.
I know I do that every year,
because I'm always sitting
in this room doing this things,
setting, instead of watching talks.
>> I don't get to see [inaudible]
>> Yeah. I can imagine. Right? But also
of course you give that opportunity to people there.
But there really is a lot going on that MeetSpace.
I think it's really critical that people understand.
>> Yeah. I think it's absolutely,
yes, almost all the content.
We don't do the classes. There's a few things
that don't get recorded.
But almost all of it's recorded.
The best stuff is all record, it's all up free.
Yet, it doesn't cause people to not count.
You think, 'Well, why don't I want to go?'
No. The things that happened
here that you're not captured on the camera,
and part of it is captured on the camera.
But it's you get in there ask the question.
Because, why didn't somebody
ask this, when you watch the video.
No, you're there. You asked that question and
you get the response.
That is worth a bunch.
And then as you say, what's going on in MeetSpace?
It's exciting to be here,
it's exciting to meet
the people who are on the committee,
and get a chance to talk to them.
Because sometimes you're frustrated like,
'Why is it taking so long to get modules done?'.
>> I saw the pictures from grill the expert,
grill the committee last night.
You could tell there was some passion in the room.
It's what we're looking for, I guess.
>> That's right, and it sounds so simple,
'Why can't you just give us this feature?'
Well, you talk to somebody in the committee and say,
'Well, it does sound simple doesn't it?
But here's this, and here's this, and here's this.
When in MeetSpace, they can be a little more casual,
and maybe more direct about what,
you know, less political, and so-
>> Right. I think it's very obvious just looking
around and I guess [inaudible] the bureau that we've been taking.
[inaudible] between these things, It's like, you know,
you get a lot of people who are super early career,
you get a people more like mid or later career,
and all of them coming together.
Just like there's a lot
of learning for every different level.
>> Right. I'm really excited to see,
as you say, early in career, to see those people here.
We have traditionally been,
and I think even still are this year,
heavier on, you know,
middle level experts, that sort of thing.
But we've always tried to be as inviting as possible.
It's absolutely true that there are going to be
sessions here that are going to be over the head of-.
>> Yes. Beginner C++ programs,
which will include labels.
>> Yes. But I
think that there's something here for everyone.
>> I really want to call it, like I was really,
like I just came to do this talk,
talk to you from a panel that I just did about.
>> That's right.
>> Yeah. With interviewing
and work as part of the student program.
>> I should turns around on you
and ask you how that went.
>> Yeah. It went great. I love talking to you people.
>> Explain what it was.
>> It was a panel.
As a person who looks at resume's all day.
In my day job as a hiring manager,
'What am I looking for?'
So, we just went through a bunch of
resumes, gave some advice,
trying to scope it to be like,
this is just one guy's opinion or whatever.
It was me, a guy from Oculus.
So there's a bunch of good.
I think there's a lot of good networking to be done.
>> Absolutely.
And I want to say something about the student program,
because it always seems
like we're not doing much for students.
Because for some years
the student program has really amounted
to the pizza dinner. We always do that.
We'll take then to dinner. Okay guys here's pizza.
Then, we may have a a resume panel,
or we may have an interviewing panel,
or we may have something like that.
Because we have-- there
aren't very many exhibitors there,
but there are few, and they
may be professional recruiters here.
So we want to leverage
that and give that to the students.
But the real reason we don't have a student program is,
we want the students in the
same sessions with everybody else.
We feel like that's the best thing,
you know, you go to college, you're in that class.
When you come here you see what
real engineers are faced with in the real world,
and how they analyze problems and those kinds of things.
So we want the students to be in the regular sessions.
When we have a student session like yours,
everyone is invited. It's just that-.
>> And there were industry people in there.
>> Yeah, certainly. But we
have students in mind when we design the session.
That's what we mean by the student program.
So this year, I think there's
other than the student dinner,
there's only like two or three things
that are for students.
But that's because we want
them in the rest of the sessions.
And that's just the way we think we can help them best.
>> Great. Anything else you want to
share with the folks before we break?
>> There are so many things going on in this year.
We have I think more
open content sessions than we've ever had.
For those in your audience,
they won't see the Open Content Session on YouTube.
>> But if they want to feel jealous they can
look at the schedule and see what they were.
>> That's right. We're just a ton of Open Content
and an Open Content it's not things
that have been formally
submitted through the program committee.
Which is part of the reason why we don't record
it because, what it is,
it's someone who-- sometimes it's things that were
submitted to the program committee and they weren't
accepted but the person is just dying to give this.
So, I really want to talk about this,
so come and we find-- well the timing is,
there's a session right before the super early sessions.
It is 8:00 o'clock in the morning,
or over lunch, which is when
your panel was, or in the evening.
And in fact anyone who's in
the area can attend any of those sessions.
They're absolutely free and in fact, the Friday sessions,
we've just always traditionally said if
you are in the area,come and see us on Friday.
It's open to anyone who wants to to attend.
But we're here, we have the venue,
we have the microphones, we have the AV.
If you'd like to give a presentation,
we'd love to have you.
We don't give you the best time slot,
we don't guarantee an audience, but we'll let you talk.
And this year there is
a security panel that I got so excited about,
I think it is going to be recorded even
though it was an Open Content Talk.
But the number of Content Talks is
really-- And of course
even though it sounds like they won't be as good,
they're almost always really good.
>> All right. So to close on this,
for what time should-- what calendar reminders should
people be setting to prep themselves for CppCon for 2019,
now that we've done this?
When do you think you should be
remembering to send in your applications?
>> For speakers?
>>For next year.
>> Yeah. Generally speaking the deadline for
speakers is about the time of C++ now.
So that's May. So probably if you've got it by April,
you're going to make the deadline.
>> Set your calendar reminders now.
>>Yeah.
>> All right John, thanks a lot for coming.
>> Okay thank you very much.
>> Okay. So, next we got Guy.
Guy, could you introduce yourself?
>> Hello everyone, my name is Guy Davidson,
I'm the Principal Coding Manager in Creative Assembly,
who makes it totally raw.
>> Sweet.
So, what is your topic for this year CPP Conference?
What's your talk title?
>> My talk title is "OI Light Graphics with IO 2D" That.
>> Okay. So, I think I might be
able to tell from the name of that that paper,
but who should be interested,
who is the ideal audience for your talk?
>> People who want to draw things.
>> Tool things?
>> Draw.
>> Draw things.
>> Draw things.
>> Draw things.
>> Yes. Drawing is particularly the problem that
we have in the standard
is there's no way of drawing things.
I have a library proposal that
will enable people to
draw things as standard, cross-platform.
It's lovely, and it's very simple,
it's very lightweight, and that's really the key.
>> So, is it available today for people to use?
Like, the audience at the talk
to be able to then actually go and use it, or is it-
>> Yes.
>> -a proposal for people to get to comment on?
>> Yes.There's a reference implementation.
They can go and download it, they can draw things.
Indeed most of the talk is,
some of the samples that you can make
with the reference implementation.
>> Okay. So, without giving us deep spoilers,
what do you think is the best pitch for this talk?
Why should people watch this
talking with their YouTube time, so to speak?
>> Because they want an easy way to draw
stuff without having to go to third-party libraries,
or learn OpenGL, or learn DirectX, or download stuff.
The idea is that once you've got this library in hands,
it's really simple to just throw telemetry together.
If you're running some code you want to say,
"does this sort of algorithm really
work as fast as I think it does?
I'll draw a picture." This is
an easy way of drawing a picture.
>> I see. Cool. All right.
So, going to be
any key takeaways for people with the targets,
like go off and build something afterwards?
Is that what you're hoping?
>> Yes. Get off, build samples.
Tell me what's wrong with the library.
Tell me how to improve it.
Go and write games. Go and do demo seeing stuff.
Go and show off with it.
That's probably the best thing I want people to do.
>> All right. So, if you're looking
for a way to go show off,
which is always welcome,
you probably want to check out Guy's talk
on drawing 2-D stuff.
>> Excellent. Thanks very much.
>> Awesome.
>> Billy, introduce yourself to the camera.
>> Hey there. I'm Billy O'Neill.
I work on the standard library team at Microsoft.
>> Great. Okay. So, this is
your first time speaking at CPP Con?
>> Yes.
>> Okay. What's your talk's title?
>> My talk is, inside Visual C++ parallel algorithms.
>> Which is the thing that you actually
developed for our libraries?
>> Yes. With helpers.
>> With helpers. So, who
is the ideal audience for this talk? Who should watch it?
>> So, if you use parallel algorithms,
or if you might want to use parallel algorithms,
and want to know why they do what they do,
or maybe if you want to write
your own parallel algorithms,
if you want to do them the same way we have.
>> Great. So, parallel algorithm users,
and these library developers.
But what are they going to take away?
What's the major -
what are you going to learn from your presentation?
>> So, when you use something like vector,
people know what vector is,
and they know - they have
some mental model of what the
performance characteristics they will have.
>> What happens when it comes to this?
>> When they say par, it paralyzes.
Somehow, magic.
The point is to get rid of
the magic so you have some idea
of what performance characteristics you can expect.
>> Okay. Great. So, if you're going to go be a user of
these new parallel algorithms which
are available in C++...
>> They are added in C++ 17,
and we started chipping them in,
I think it was 156, and then we added more in 157.
>> So, if you want to go take advantage
of these, you can go to this talk,
and you're going to learn all about the
performance characteristics of how to
expect - what performance
to expect out of your code for the various.
>> Absolutely.
>> Great. Thanks Billy.
>> Thanks.
>> Okay. Fabian, Can you introduce yourself?
>> Yes. I'm Fabian Renn-Giles.
I am a C++ consultant.
I mostly do work on a realtime audio in C++,
but for this talk here I'm venturing
out into unknown territory for me.
>> Okay. So, what is
the name of your unknown territory talks?
>> It's called, a semi run-time
compile-time map with nearly zero overhead lookup.
>> Okay.
>> Long title.
>> Well, it is,
but it's very specific.
>> Yes.
>> So, as specific as it was,
who's the ideal audience for your talk?
>> I think it's intermediate advanced developers
who liked Jason's and
Ben's context for all the things talk,
which I think went down a year ago here.
>> Which you can look up
because all the CPP Con talks are there.
>> Exactly.
>>So, is it a prerequisite though?
>> No, no. Definitely not.
>> Okay.
>> It's going to use a lot of modern C++,
definitely lot of cons expra.
We're going to talk a bit about maps,
and we're going to talk about
a really obscure function of C ++ called steep longer.
>> Okay. So, let's
get like a quick elevator pitch for the talk.
>> Okay.
>> I think you're saying it's sort of
like a data structure talk.
You're going to talk about,
the structure that you've developed.
>> Right. So, it's going to be about an associative map,
and particularly when it's used as a cache.
>> Okay.
>> In this talk, we've
seen maps that were compile-time only.
>> Okay.
>> Right? So, that's Jason's and Ben's talks.
We've seen maps that are run-time only,
just normal STL maps.
But this map is half-half,
and it's used when you know
your keys as compile-time literals in advance,
but you still want to modify
the values at run-time, right?
I think that's a very common use case actually.
Both of these compile-time only maps,
and these run-time maps, they
don't really solve that problem.
So, I'm going to try to solve this problem.
This map has a foot in both worlds.
>> So, it's sort of like if you have a use case
that matches what your data structure
is, sort of the key thing is-
> Right.
>> -then absolutely you're like right in sweet spot.
>> Absolutely.
>> But also it's interesting if you're the kind of-
>> Absolutely.
>> -person who is trying to develop cool on
context par based data structures for your own work,
you learn from this application talk.
>> Exactly. That's it.
>> All right. Thank you very much Fab.
>> Thank you.
>> Great.
>> Can you guys introduce yourselves?
Hello. I'm Matthias Gehre.
I work at the Silexica,
and we do C++ development tooling combining
source code analysis with profiling and instrumenting.
>> Cool.
>> Hello, I'm Gabor Horvath
and I am an intern at Microsoft.
>> Sweet. All right. So, you guys
are co-presenting a talk.
What's the title of that talk?
>> The title is, implementing the C++ core guidelines,
lifetime safety profile, and Clang.
>> Okay. Cool. So, this is based
on the lifetime rules that Fab has been
talking about in the CPP Con
from last year and this year. Is that right?
>> Exactly. It's an implementation
of the paper that he wrote.
There's another implementation. As we see,
we will able to talk about the Cling implementation.
>> Great.
>> We'll both do it together.
>> Okay. Great. So, who
is the ideal audience for this talk?
>> So, the audience of the talk is people
that have lifetimes problems experience in their code,
and want to know how to use the checker
to find those kind of problems.
But also people that are interested in static analysis
because we will touch a bit on how
this paper and the checker works.
>> Yes. I would say that in general I find
static analysis tools really fascinating.
So, if you ever had
some interest in figuring out how those things work,
this might be a good way to get that intro in this.
Okay. So, in the talk you're going to talk
about how to use the tools as well?
Is that the primary thing the
people will take away from it?
>> We will show demos,
a lot of demos on compiler explorer
mainly on how the checker works,
what kind of results it gives.
You have to know that it's still an alpha version,
but it's a good introduction to where this can go.
>> Do you expect people to have already
learned about the lifetimes proposal that hub has,
or is that something you are going
to cover as a pre-requisite in your talk?
>> We will cover that as well.
So, in order to use this tool one would need
some kind of training to
familiarize themselves with the rules,
and this will be included in the talk.
>> Okay. Great. So, it's self-contained.
So, if you're interested in lifetimes,
you guys check out these dudes talks. Right?
>> Exactly.
>> Right. Thank you very much.
>> Thank you.
>> Okay. So, you have a solo talk as well.
What's the name of that talk?
>> Right. So, the title is dealing
with aliasing using contracts.
This talk is mainly for good boaters,
people who tend to look at
the assembly output from the compiler,
and reason about the performance of the compiler.
>> More advanced talk looking
at sort of low level details.
>> Yes.
>> So, tell us a little bit
about what we'll learn from your talk.
>> So, basically C has
this restrict keywords that we
can use to give hints to the compiler,
but pointers may or may not alias.
This is very useful for
the compiler to reason about the code.
So, this can help the compiler to do optimizations.
>> Cross optimization.
>> Yes. We do not have
the equivalent functionality in C++
even though we have it in other languages like Fortran.
>> Okay.
>> So, this is kind of
an unsolved problem for a long time,
which prevents to achieve
really great performance in some scenario.
Almost all the compilers have some workarounds,
non-standard solutions, how to do this.
So, I propose a method
to bring this feature into the language.
>> Specifically a restrict keyword?
>> The restrict keyword is like a precondition,
and since we are going to-
>> In the contract sense?
>> Yes.
>> Okay.
>> Since we are going to introduce
contracts into the language,
I would like to propose something that
is more general than restrict,
and builds upon the contract TS basically.
>> Right. Sounds really interesting. Thanks Gabor.
>> Patrice, can introduce yourself
and tell us where you're from?
>> Of course. My name is Patrice Roy.
I'm from University of Sherbrooke, close to Montreal.
>> Cool.
>> What is the title of your talk this year?
>> I'm in the talk named Pessimistic Programming.
>> It is a reflection of your personality type, is it?
>> Well, I was looking for something catchy,
but I think it worked.
But the idea is, I work with real-time systems people,
and this talk is aimed
for people who are worried about the worst case.
>> Okay.
>> Okay, I want to write programs, where your program,
yes there's been properly in
general but where is the rare case,
the annoying case,
which is the one you want to optimize for.
>> So, then if I were to think
about the audience for this,
it sounds like definitely the people
doing real-time application.
>> Yes. Self-driving cars.
>> Like the sweet spot for this.
It's really actually anyone who isn't only
interested in the average case,
is that the way to think about it?
>> Yes, probably. The compiler optimizes well yourself,
but sometimes the compiler doesn't know what you know,
and for those rare cases where you want
control and C++ is all about control.
>> Yes.
>> This is cool.
>> So, this is and then C++ is
the best language for doing this.
You want to tell us a little bit about like
the content of the talk?
>> Well. Yeah. I guess I stopped
once in Montreal to try it out,
and people were surprised.
I think it's something people think about lot.
>> Yeah, I was very intrigued by the abstract.
>> You're very sweet.
>> Yeah.
>> But yeah that's it. So, when you are
not aiming for the best average case
or for the overall fastest speed
but for speed when it counts.
You're driving a car, you don't break often,
but when you break you want to break right away.
>> Yeah.
>> For that sort of stuff.
>> You can pause Spotify for a minute. Something for it.
>> Yeah. That's kind of the point here.
For this sort of programming, there are techniques
because sometimes the compiler
doesn't optimize where you want it to,
because sometimes it is for
the normal case which
is a better throughput or something like that.
So, a number of techniques
and ways to thinking about your program there,
touching on a number of topics like subdividing your code
into smaller steps that
you were executing in controlled ways.
>> Okay. You really even have sort of how
to structure your code better for these sort of stacks.
>> Lots of examples yeah.
Yeah. From the experience I could gather
people seem to be
surprised sometimes that you
can do some things, it's so cool.
>> I guess you'll also be learning a lot about what's
going on underneath the covers of your code,
and the surprising interactions of it,
is that a good ways looking at it?
>> I'm not looking that much
at the assembly code than this one.
Those are in C++ stuff here but are very,
very technical, you have
to be there for the technical stuff.
>> Okay, and I think you were also
did something else here this week already.
>> Yeah. Yeah.
>> Do you want to have a little bit about
why you should come to CppCon next year.
It's great that you can watch the video, is that right?
As you can make few purchases.
>> Yeah, and you can come for classes.
So, we have great classes there.
We're I think eight pre-conference classes.
We had lots of people this year in
school and you should also come next year.
It's the third time I give a class,
and this time I tried something interesting which
is called thinking small.
You see this mistake of thinking small is good.
I think people liked it. How you
control the size of things in your program to
make sure they fit into smarter devices into cash.
That you can control where things go,
there's you can think with alignment and placement,
and you had those little things
that make a difference and then you
measure the results and say, "Oh I see."
It isn't interesting to the class, 15 hours.
I think people liked it. But, all the classes
we have are really cool seriously.
We have a number of tremendous classes this year,
and it keeps on growing.
So, I recommend those interested to try them out.
>> I think it's great.
>> Yeah, and many others. Yeah.
>> Okay. Great thanks Patrice for coming live.
>> Pleasure.
>> Okay. Anastasiia can you introduce yourself?
>> Yeah. So, my name is Anastasiia.
I worked for the company named
JetBrains as a Product Marketing Manager,
and so we did tools for developers.
>> Okay. Cool. So, what is your talk topic this year?
>> This year I'm talking about
debugging C++ without running.
>> Okay. Great. Debugging is
close to my heart and I also have a debugging talk.
Tell me a little bit about the audience for this talk.
>> I guess the ideal audience is
every C++ developer who uses
the modern C++ standards and would
like to unveil the language abstractions and to
understand the meaning of
the code behind these abstractions.
>> So, like anything like 11
and up or when you say modern?
>> I mean understanding
the code and what's actually happening behind it.
>> I see.
>> Before you even actually compile or run the code
or debug it or even run the pre-processor step.
>> Got it. So, there's
some mystery for the talk itself but can you give
us the pitch like what are you going to
learn if you attend or watch the stuff?
>> You'll actually learn a lot because
I would like to say that it's not a product demo.
So, I will be for sure showing
some of the tools we do at JetBrains.
But the idea is to give a notion about
how the whole ecosystem works,
and why do we have in the current ecosystem.
So, I will be demo in CLion, ReSharper C++,
Visual Studio, Eclipse develop and many more.
>> So, like what parts of
the tools are you going to show? I think a lot quickly.
>> So, I will be showing some things
like how to understand what is behind
the macro or what is
the type alias in the answer, what is behind it,
or what's the actual type of the variable which
is covered with these outer and decal type,
and you never got the actual tied behind it,
but the tools can do that for you actually.
>> So, is it fair to say that
your developer tools give you the superpower
of seeing through all the things the compiler is doing.
>> Exactly, exactly. I would
like to share the information
how all the tools we have and
the system can actually do that.
So, you can be sure that out of that talk you'll learn
some new things about your tool and
maybe new features that can help you grow too.
>> So, you walk out of this talk,
you're more productive developer,
and you've learned a lot more about
the way that your tools can reveal.
>> Yeah, that's the idea behind.
>> Great thank you very much.
>> Thank you.
>> Okay, Simon can you introduce yourself.
>> Yeah. So, my name is Simon Brand and I recently
started a Microsoft as a C++ Developer Advocate.
>> Okay, so and when did you start?
>> Literally this week. Okay, I
started on Tuesday and then free on Friday.
So, I have had three days in the office so far.
>> Got it.
Actually this week is
my 15-year anniversary at Microsoft.
>> Well, too.
>> It is a little effort. Welcome on board.
So, you are a madman.
You have four talks.
>> Yes I do.
>> Here at CppCon today.
Tell me where you went wrong in life?
So, we're going to go through all of them.
>> Yeah.
>> I guess let's get started. So, let's talk
about your first talk, what's your first talk?
>> My first talk is at 2:00 p.m. today and it's
on higher C++ debuggers work.
So, if you have always wondered
how are the tools that you use actually get things done,
then you should come to my talk and learn about them.
>> Great. Okay, so the audience is
people wanting to understand how it works
under the covers or maybe somebody wants to get into
the business or somebody else writing about.
>> It should give you the necessary background to dive
into the codebase or just
kind of reason about what your debugger is doing.
So, it should be quite open to beginners or
just anyone who's used debuggers
and never understood them.
>> Great, okay. So, that when the audience is news,
and the ticket will be how it works.
What's your second talk?
>> The second talk is how to write
well-behaved value wrappers in C++.
So, this is a talk more aimed at
generic library developers or
people who are interested in generic library development,
but don't necessarily have
the knowledge of kind of
ridiculous tricks that you have to do,
to get things to behave nicely
and beyond surprising and performance.
So, if you're interested
in that kind of thing come to my talk.
>> So, let me see I could spit that back at you.
So basically, if you want to become more
like an application developer trying to make
that leap to know
all the cool template metadata programming techniques
or more modern things in order to make that jump.
This is a great place to get started.
>> Yeah, definitely.
>> Great, it makes perfect sense. Third talk.
>> Third talk is joint talk
with Phil Nash from JetBrains.
>> Okay.
>> So, we're going to be talking about a broad survey
of different error-handling techniques in C++.
>> Okay. So, this is a hot topic in
the community currently. So, you're going to go broad?
>> Yes, so the title is "What Could Possibly Go Wrong."
The subtitle is completely forgotten.
The subtitle is-.
>> That's fine. You can search for the first program.
>> You search for the first program.
>> Simon Brand is easy to spell.
>> Yes indeed. Yes. So, it's going to
be starting off error codes and
dynamic exceptions which is
what we have in the moment and then
looking at functional languages
like Haskell, Hoogle videos.
>> Oh wow, you going very broad.
>> Yeah, looking at how they deal with
error-handling and seeing how we can apply that to C++,
and then seeing if we can take these more kind of
library-based solutions and extend
the language to support them a lot better.
>> So, is this for people who are
interested in deciding how going forward,
which of these strategies they should use,
more towards like people are fascinated
by language design, what do you think the audience is?
>> I think this talk has a very, very broad audience,
anyone who is thinking
about what error-handling techniques should I use,
what are the benefits
and downsides of different techniques,
where's the language going for error-handling in general.
So, people like that can come to this talk,
and people who are actually specifying this stuff can
get some of our opinions which may or may not be good.
>> But it's opinionated.
>> Yes.
>> In a good way.
>> Phil and I mostly match up in all of our opinions.
>> So, that's not a cage match kind of situation.
>> Yeah, yeah.
>> But if you're not interested in
handling errors in your code,
then it's stop coding.
>> Yeah.
>> Stop, stop, stop.
>> Yeah.
>> Okay, all right.
So, that's one, two, three. What's the fourth talk?
>> The fourth talk is only a half-hour talk.
So, I went easy on myself.
>> Yeah, so I'll give 3.5.
I don't want to give it a four there.
>> All right. Entitled overloading
the bane of all higher-order functions.
So, it's all about higher.
There's a huge hole in C++ as a language,
where function overloading and function
templates just totally break higher-order functions.
So, passing these around to algorithms
or anything which expecting to something you can call.
There's just no good solutions to this right now.
>> This is for people like horror movies
and is that like what's the audience for this one?
>> This is the people who are interested in like
weird edge cases and also people who,
I think a lot of people have hit these problems
but never really thought about what
the solutions could be.
So, I am going to talk about problems,
talk about some solutions,
things we can do today to alleviate
some of the problems but they're not that great,
and I'm looking forward to what might be coming
in the standard for actually fixing this properly.
>> Great. Simon, that's
quite the portfolio you're planning to have this time,
and it's almost this whole thing
is intended to be sort of a table of
contents to CppCon content for
people kind of overwhelmed by all the talks.
It's great that we have a table of contents for
just you in the table of contents.
So, our nested table of contents is done.
Thank you very much. I guess we'll dive.
>> Thanks very much.
>> Awesome.
>> Okay. Kostya, can you introduce yourself?
>> Hello, my name is Kostya Serebryany,
and I work at Google
in the Sunnyvale office in California.
My team has been developing various dynamic testing tools,
mostly for C++, during the last decade.
We have presented some of
these tools on the previous CppCons.
>> I think for the folks at home who would know you,
they know you're like the Sanitizer guy, right?
>> Yeah. The other name for our tools are the Sanitizers,
AddressSanitizer, ThreadSanitizer, and so on.
>> Great. They're amazing tools.
Okay. So, what are you talking about this year though?
>> This year, we're talking
about AddressSanitizer on steroids.
It actually has a different name.
The concept is called memory tagging,
and we're talking specifically about
the hardware implementations of memory tagging.
>> Okay. So, who's the ideal audience?
Who do you think should consider
watching your talk once they're all posted?
>> Anyone who ever debugged
a problem in C++ caused by memory safety bug,
a buffer overflow, use-after-free,
use of uninitialized memory,
if they didn't like this experience
or they've heard other people
who didn't like this experience,
they may want to hear my talk.
>> So, if you've never had any problems that
were hard to debug, don't watch the talk.
>> Yeah.
>> But otherwise, you're probably good to go. All right.
Tell me a little bit more about the content,
like what are you going to go over this.
Is it about the design of the systems
and how to use this system?
>> I'll talk about three major things.
First is the concept of memory tagging,
how it works, and why it works,
and why it detects the bugs.
Second, I will describe three existing implementations.
Existing is maybe a little bit strong statement,
but you can try some of those systems today,
you can read about some of other systems today.
Third part of the talk is how actually
it affects not just the
testing and stability story for the C++,
but also how it affects
the security story for the C++ applications.
>> Got it. Cool. Is there
going to be a key takeaway from it?
Or you're going to ask people to go
off and use the tool at the end of it?
>> The key takeaway is, unfortunately,
that we have to do more work,
and I have a homework assignment.
>> You and your team? Or the audience?
We, the C++ community.
>> We as the industry,
including the C++ community,
have to do the homework to make
C++ more memory safe and more software engineer friendly.
I will have a homework assignment for the audience.
>> Okay. Cool. All right.
Kostya, thank you very much.
>> Thank you.
>> All right, Marian, introduce yourself.
>> Hi, I'm Marian Luparu.
I am a Program Manager Lead in
the Visual C++ Team at Microsoft.
>> Okay. Can you tell them about the name of our talk?
>> The name of our talk will be the Latest and
Greatest in the Visual Studio Family for C++ Developers.
>> Okay. So, who's the ideal audience for this talk?
>> Very good question. Some people may
assume that it's Windows developers,
but it's really for any C++ developer out there,
anyone doing cross-platform development,
anyone caring about targeting Linux or
Windows or any other platform out there.
>> So, what are we going to cover in
our talk, our Lightning?
>> So, something that we'll definitely cover
is what a lot of people care about is conformance,
the progress on making
a conforming compiler and a tool set.
>> Got some cool announcements there.
>> Yeah. We have
some more news going
beyond what we announced earlier this year,
but even more interestingly,
we're going to show a lot of the cross-platform support
that we have in Visual Studio,
and we have a [inaudible] there.
It's him. So, basically,
we're going to show targeting Linux,
targeting Windows from the same codebase,
and we're going to try to
let people know how simple that is.
>> Right.
I think there're going to be a lot of
different tips and tricks that you
can apply in even just the latest versions.
We're going to show lots of new features.
I think we're going to have stuff that you can
immediately go and use in your day to day thing.
Then, at the end, we'll even
have a little section where we show
a more future direction-y stuff.
>> We can't talk about it now.
>> But I can't say what it is.
You have to just watch the talk.
>> Absolutely. So, watch the talk.
>> All right. So, I'm excited. Are you excited?
>> All I could look forward to is giving the talk.
>> All right. Good. So, go watch
our talk, please. All right.
>> Okay. Why don't you introduce yourself?
>> My name is Matthew Butler.
I work in Information Security.
My background has been
in both military and law enforcement,
working in those capacities,
as well as network security and issues along those lines.
>> Cool. So, what are you speaking
on at this year's CppCon?
>> So, I did two talks,
both of them are on information security,
so Security Coding Best Practices.
The first talk is really a talk
about how we got to where we are,
what the environment is like,
what the kinds of things hackers will
go after as far as your code.
At the end of the first talk,
I will do an exploit.
So, we'll actually do it live.
I'll explain exactly how it works, and then,
we'll go exploit a Linux VM
so that people can see how this works.
>> Okay. The second talk?
>> The second talk is the good news,
what can we do about it.
It's about testing threat modeling,
the kinds of things we can do as
engineers to make our code safer.
At the end of that talk, I'll do
a completely different exploit,
and we'll do that live as well.
This is one that actually,
if you have an Unpatched Linux Kernel,
you'd be vulnerable to it today.
>> Okay. Wow. So, is this like one of things where
if you're like the bad news first kind of guy,
he wants to put the bad news, and then,
just the good news first [inaudible].
>> Well, we have to set the stage.
It becomes the talk
that once a company has been breached,
it's a very easy talk to have with the CEO,
because the bad guys have
already done all the heavy lifting for me.
>> But do you want people to watch one of them first?
Is there a pre-reps between them?
Or are they independent?
>> I would watch them in order simply because
of some of what's in
the second talk is dependent on the first talk.
>> Got it. So, what's the title of the first one?
>> They're both called Secure Coding Best Practices.
There's just a part one and part two.
>> Part one and part two.
I think they'll figure that one out.
>> It's a two hour talk.
>> Great. So, I think you already answered this,
but the ideal audience for these is devs who want to get
deeper on how to write more secure code,
or also, who else?
>> It's for any range of engineers,
but it's for engineers who want to begin to understand
the patterns of how hackers will hack their code.
We have a tendency to look at our code in terms of,
well, how can I build this great thing?
How can I make it perform well?
How can it be more clear?
But what we don't look at,
the ultimate edge case for how your code behaves,
is how easy it is for me to hack into your code.
So, if you want to know how hackers view your code,
the kinds of techniques they use to go after you,
the kinds of vulnerabilities we put into our code,
then the first talk is a talk you want to watch.
The second talk is,
how can we use things like fuzz testing,
how can we use threat modeling,
how can we use static analysis,
dynamic analysis, and all of
the different tool sets to be able to
look at our code and test it and get
these kinds of vulnerabilities
out before they go into the wild.
>> Great. So, takeaways will be, and then,
go take those forward and apply them in your coding,
regardless of what job you do,
as long as you're security conscious.
>> Exactly. One of the things we will talk a lot
about is this concept of Zero Trust boundaries.
We've always had the idea that everything outside
perimeter security is risky
and everything inside is safe.
But what we are coming to the point of is that
perimeter security is not going to protect you.
So, even if you're just writing
systems that are inside the firewall,
you really are operating in a Zero Trust environment.
So, we'll talk a lot about
the current environment and how
you can defend your systems against
the types of attacks that go on every day.
>> Great. Sounds like great content. Thank you, Mathew.
>> Thank you.
No comments:
Post a Comment