Trevoke / dwarlixir-mistakes

The Big Elixir 2019 - "Dwarlixir: mistakes were made"
http://blog.trevoke.net/dwarlixir-mistakes
0 stars 0 forks source link

unsorted feedback #5

Closed Trevoke closed 4 years ago

Trevoke commented 5 years ago

the algorithm improvement section seemed promising, but was hard to follow… partly the model of the graph was a little confusing (maybe more info about hunt the wumpus, or maybe if the details of the graph don’t matter for the algorithm just cut the image and details out and leave it at graph traversal….)… going from Enum.flat_map to List.foldl is sort of interesting, but I think foldl is basically the same as Enum.reduce, right? I know basically everything in Enum is mostly build on reduce and that it tends to be more performant than some of the others as a result… could also play with/mention for comprehension which is a macro that compiles to reduce as a generally more performant option than flat_map or other Enum fn’s I think, but a) not sure that applies here and b) may be worth confirming, but it might make it clear this isn’t entirely about List vs Enum but impelementation details of particular Enum functions… though I could be wrong and maybe the protocol overhead of Enum plays a role also? But point being I guess if this graph happened to be a reursive map with performance problems using flat_map I think reduce would still help a lot. also it’s a little odd how later slide adds a few lines of context not there in earlier slide, so I think maybe should be there in both? or neither perhaps, but I think both is good on extreme local state, and maybe some other places, may be a few extra slides worth throwing in for things mentioned but not shown in slides, as bullet/reference points, like dining philosophers problem… I thought of it on the deadlocks slide, and then you talked about it a minute or two later, but there’s no slide referencing it and someone might want it up to copy down and look into later/check they heard the name correctly etc

In distributed state, I don’t remember if you talked about/explicitly labeled your realization that you’d created caches by having more local state copies, but natural place to maybe remind/reference difficulty of cache invalidation, perhaps in a slide, perhaps “2 hard things reference”, whatever, but it’s a useful reference point that… well, a) distribtued state, if its happening, should be something like sharding not cacheing, and b) things that are a cache need to somehow explicitly and carefully address the hard problem of invalidation the heartbeat thing is hilarious with CPU usage… maybe worth showing a visualization/screenshot of the actual CPU activity this created from activity monitor or whatever?

also not totally cleaer reviewing slides but how seperate are the scheduler/tick issue and flooding processes issue? seem like potentially one issue that could be merged but maybe I’m forgetting different causes in spoken parts of talk the misconception text is very similar though: “There won’t be a sizable impact to sending lots of processes a message at the same time” vs “It’s hard to send a process too many messages”… if really distinct maybe can differentiate better in slides/text I guess one is about a single process the other is about collective messaging to the system, but, dunno, the second one feels like a detail/extreme case for humor/punctuation at end of the first one

maybe more details about what OOM killer behavior looked like? BEAM has one process/thread per core right? so was it killing a single scheduler at a time and the others were OK? how did you diagnose/how would you save someone else time diagnosing this if they were seeing something and wanted to be reminded of this/rule it out? also curious, you run linux right? would this look very different on BSD/Mac do you know? or inside a docker container vs outside?

Trevoke commented 4 years ago
Trevoke commented 4 years ago

Talk feedback: Body language

overall it's great though, using the specific project as a frame for the lessons is a good format and engaging, makes everything seem connected

Trevoke commented 4 years ago

Personally, I like the "@" sign in front of handles, below your name

Song lyrics and jokes took away some of what you were trying to convey as the intent of the talk, which I think is important to establish in the first few slides - I didn't feel as "hooked" as I should have

"Aim" slide capitalization and punctuation in list is inconsistent (some first words are capitalized, some aren't... some bullet points have periods, some don't, etc.)

Explain hot deploys, you might have some conference attendees that are beginners

It wasn't immediately apparent to me in the "roadmap" list that when it's "finished", e.g. [x], that the line changed to be the answer. Question and answer format might be a little friendlier for the audience --> Suggestion: maybe frame it as "Failure" vs. "Learning"?

Reminder: Impact slide - link is broken

Flooding process "Story" slide is blank but the other ones weren't (intentional?)

More emphasis on the Erlang/Elixir implementation bits?

"won't grow unboundedly" (grammar?) -> "won't grow unbounded"?

Bonus...

Explain LSP?

Probably cool to say "Hey, if you're out there..."