CppCon 2015: Sean Parent "Better Code: Data Structures"

  Рет қаралды 100,942

CppCon

CppCon

Күн бұрын

www.cppcon.org
--
The standard library containers are often both misused and underused. Instead of creating new containers, applications are often structured with incidental data structures composed of objects referencing other object. This talk looks at some of the ways the standard containers can be better utilized and how creating (or using non-standard library) containers can greatly simplify code. The goal is no incidental data structures.
--
Sean Parent is a principal scientist and software architect for Adobe’s mobile digital imaging group. Sean has been at Adobe since 1993 when he joined as a senior engineer working on Photoshop and later managed Adobe’s Software Technology Lab. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.
--
Videos Filmed & Edited by Bash Films: www.BashFilms.com
*-----*
Register Now For CppCon 2022: cppcon.org/registration/
*-----*

Пікірлер: 48
@brainplot
@brainplot 4 жыл бұрын
Sean Parent speaks so much like a professor/teacher. I love his tone and pace!
@DavidVaughan00
@DavidVaughan00 7 жыл бұрын
This is a really good talk; no idea what everybody below is complaining about. It's not even particularly slow compared to other talks.
@PatrickKellyLoneCoder
@PatrickKellyLoneCoder 5 жыл бұрын
I really enjoy his speaking rate. Anyone who doesn't? That's why KZbin has playback rate adjustment. I use it to slow certain presenters, others can use it to speed him up.
@bboysil
@bboysil 2 жыл бұрын
This is one of the best talks I've heard in a while. you can put 1.5x or 1.25x if you think he speaks a pace that's too low for you. Love the statement at 20:50 . It's been something I've been arguing with big O notation puritans a while back.
@AG-ld6rv
@AG-ld6rv 2 жыл бұрын
Just reference how std::sort for random access iterators uses an O(n^2) algorithm when the container is small enough.
@denzillong9878
@denzillong9878 8 жыл бұрын
Very well done. I really enjoyed this talk.
@AllothTian
@AllothTian 3 жыл бұрын
Great talk! The tree representation outlined in 44:25 looks like an Euler Tour Tree, introduced in 1984.
@danielhawkins3392
@danielhawkins3392 7 ай бұрын
In the windows hierarchy example if a unique pointer was used instead of a shared that would make it a composite object no? This then makes class hierarchies perfectly fine. Am I missing something?
@nelsondavenapalli8802
@nelsondavenapalli8802 8 жыл бұрын
Great insights shared by Sean Parent. Must watch
@victornoagbodji
@victornoagbodji 6 жыл бұрын
when are we going to have more chapters, can't wait lol : )
@Skyganli
@Skyganli 7 жыл бұрын
'Let us form some happy little algorithms, okay?'
@zachs5231
@zachs5231 4 жыл бұрын
35:10
@scottmueller7700
@scottmueller7700 3 жыл бұрын
When the moon hits your eye like a big pizza pie, that's a rotate
@EvgeniyZheltonozhskiy
@EvgeniyZheltonozhskiy 8 жыл бұрын
Are there transcripts of CppCon videos somewhere?
@TheDuckofDoom.
@TheDuckofDoom. 6 жыл бұрын
Does this book exist yet?
@rocknroooollllll
@rocknroooollllll 2 жыл бұрын
Just chiming in against the "too slow" complaints. I prefer the considered approach; x10000000 better than _some_ talks where they haave death by powerpoint (too many slides) and so much to say that they say, "Comments and questions at the end, please". Often, they never get to the end. Just compare this talk to any Lakos talk. Heaven!
@m13m
@m13m 6 жыл бұрын
Sean what a speaker beautiful
@leonhrad
@leonhrad 8 жыл бұрын
11:17 What if I told you 4 is actually greater than 3?
@scottmueller7700
@scottmueller7700 3 жыл бұрын
It's funny because we don't use greater-than in standard library predicates, it's always less-than to define well-ordering.
@alexandersedykh9280
@alexandersedykh9280 2 жыл бұрын
What is the trailing_of_begin() 51:05? Hm. Apple's UIKit has Window 'Hierarchy' and detect a tap by pass the tap down through the hierarchy
@SeanParent
@SeanParent 2 жыл бұрын
Each node has two in-edges, leading (in the picture left side pointing down), and trailing (right side pointing up). `begin(f)` points to the leading edge of `A`. `trailing_of(begin(f))` returns an iterator pointing to the trailing edge of `A`. After inserting `B, C, D` the result is the image shown.
@jankodedic3130
@jankodedic3130 6 жыл бұрын
The talk is exactly 64 min long.
@warrenhenning8064
@warrenhenning8064 3 жыл бұрын
How about he uses some of these good data structures on Photoshop so that it doesn't take forever to load when it doesn't do any work that's useful to the user on startup?
@Radrik05
@Radrik05 5 жыл бұрын
At 21:00 log 1'000'000'000'000 = 40 tests (in search) each of these is 200 times slower than cache-friendly linear test. So 8'000 is faster then 500'000'000'000 (average number of tests in linear search). Big O notation does make sense or I didn't get the idea of the example.
@sebastianmestre8971
@sebastianmestre8971 5 жыл бұрын
He meant that a cache friendly nlogn algorithm might run faster than a non cache friendly linear algorithm linear, cache unfriendly (200x comes from slow memory access) 1'000'000'000'000 * 200 = 200'000'000'000'000 linearithmic, cache friendly (40x comes from the log factor) 1'000'000'000'000 * 40 = 40'000'000'000'000 200'000'000'000'000 / 40'000'000'000'000 = 20 (nlogn could end up being 20 times faster) (or just 10 times faster on average)
@QuentinUK
@QuentinUK 8 жыл бұрын
Digital Imaging. +Evgeniy Zheltonozhskiy Transcripts are under ". . . More".
@batner
@batner 7 жыл бұрын
So I feel a bit dumb after watching this. I did understand most of his ideas but up to a point in each case. Something gives up in my brain and i lose the feeling of comprehensive understanding.
@MM-24
@MM-24 7 жыл бұрын
Yea his use of vocabulary was a bit bothersome in some places. I'll have to re-watch with google in another tab ... will be good thing however and bring me to another level though
@JaihindhReddy
@JaihindhReddy 7 жыл бұрын
Rewatch at 1.5x. You'll be surprised.
@aperson4051
@aperson4051 4 жыл бұрын
Reassuring I'm not the only one. Constantly feeling alittle bit stupid
@AG-ld6rv
@AG-ld6rv 2 жыл бұрын
These types of things aren't understood for free. He has done as he recommends, so he has dedicated hours into thinking about STL algorithms and their implementations. He also references an entire book he has carefully read as the source of many concepts he brought up. People often see a challenge and give up if things don't immediately click. The only way to be like him is through hard work. Many people who picked up programming on its own never studied data structures and algorithms for hours. I'd recommend getting an introductory book on those topics and diving right in if you are one of these people. It takes a good chunk of time and effort.
8 жыл бұрын
Would have been clearer with more code examples. Like the do's and don't's. But perhaps I'm just too tired for my brain to work properly.
@shenzi1118
@shenzi1118 4 жыл бұрын
tl;dr use vector for everything.
@VictorChavesVVBC
@VictorChavesVVBC 8 жыл бұрын
I liked this talk, but apparently this goes against many well stablished and useful Design Patterns. Self-referential classes are really nice sometimes and I think we should not make an explicit effort to not use it when the abstract model of the problems is clearly self referential.
@leonid998
@leonid998 2 жыл бұрын
19:33 accidentally lookup in a map became n*log(n)
@lobetrotter
@lobetrotter 5 жыл бұрын
zZZZZZZZZZZZZZZ
@dniam9859
@dniam9859 5 жыл бұрын
ok?
@matthew21995
@matthew21995 8 жыл бұрын
is this guys in on slow motion? lol
@MM-24
@MM-24 7 жыл бұрын
Pro Tip - use KZbins 2x speedup .... I can't watch any talks without it
@TheClonerx
@TheClonerx 6 жыл бұрын
M M pro tip: you can't in mobile
@xthebumpx
@xthebumpx 6 жыл бұрын
My favorite part is where he says he must have talked faster than he was expecting to.
@alienwarem18x
@alienwarem18x 6 жыл бұрын
Now you can
@thetdltornike
@thetdltornike 8 жыл бұрын
watched it at 2x speed, still too slow
@TheCriticFromSouth
@TheCriticFromSouth 7 жыл бұрын
And this, boys and girls, is what happens when you are given 1 hour to talk and you have (if you have) only 30 minutes of topic to fill.
@matthewharris6454
@matthewharris6454 2 жыл бұрын
And this, boys and girls, is what happens when you have nothing to say but you make a comment saying it anyway
@rg3412
@rg3412 6 жыл бұрын
God that guy loves to listen to himself
@AG-ld6rv
@AG-ld6rv 2 жыл бұрын
Your perspective is bizarre. He most likely makes a million or more a year programming. His viewpoint that he has developed over decades from real-world experience, reading books, studying code beyond what he needed, etc. is both highly valuable and justified. In a situation like this, people jealously associate success from hard work with stuff like arrogance. Sometimes, a person just knows what they are talking about.
@tw7522
@tw7522 8 жыл бұрын
Terribly slow and exhausting.
Warning: std::find() is Broken! - Sean Parent - CppCon 2021
1:41:35
Black Magic 🪄 by Petkit Pura Max #cat #cats
00:38
Sonyakisa8 TT
Рет қаралды 36 МЛН
1🥺🎉 #thankyou
00:29
はじめしゃちょー(hajime)
Рет қаралды 79 МЛН
Why You Should Always Help Others ❤️
00:40
Alan Chikin Chow
Рет қаралды 10 МЛН
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 63 МЛН
CppCon 2016: Jason Turner “Practical Performance Practices"
1:00:29
CppCon 2015: Andrei Alexandrescu “std::allocator...”
1:12:27
Better Code: Runtime Polymorphism - Sean Parent
57:33
NDC Conferences
Рет қаралды 70 М.
ROS ステアリング台車テスト
1:56
ロボット動画集
Рет қаралды 250
the TRUTH about C++ (is it worth your time?)
3:17
Low Level Learning
Рет қаралды 596 М.
HACKING UNITY GAMES (FOR NOOBS)
16:11
cazz
Рет қаралды 19 М.
Bjarne Stroustrup: C++ | Lex Fridman Podcast #48
1:47:13
Lex Fridman
Рет қаралды 1 МЛН
Black Magic 🪄 by Petkit Pura Max #cat #cats
00:38
Sonyakisa8 TT
Рет қаралды 36 МЛН