The Pinkest Pink - Dan Laush
20:40
Being a Good Male Ally - Nick Wolf
45:16
Dissecting Rails - Anton Panteleev
32:06
Пікірлер
@ThomasRobinson-c8j
@ThomasRobinson-c8j 20 күн бұрын
Thanks for the analysis! A bit off-topic, but I wanted to ask: My OKX wallet holds some USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). What's the best way to send them to Binance?
@lancemarchetti8673
@lancemarchetti8673 Ай бұрын
Interesting approach...
@OstapBrehin
@OstapBrehin 2 ай бұрын
Interesting
@emediongsamuel3726
@emediongsamuel3726 2 ай бұрын
Go Tash 👍
@haroldpepete
@haroldpepete 2 ай бұрын
you know it's gonna be an interesting talk when you see Chris Oliver
@p1r4nya
@p1r4nya 3 ай бұрын
Cheateeeer!!! xDDD
@RyangMari
@RyangMari 4 ай бұрын
MAJOR MOMENTS IN THE HISTORY OF WRITING
@ioquatix
@ioquatix 4 ай бұрын
Nice talk :) Regarding fibers going across threads, I think it's a reasonable idea for implementing work stealing, however the problem right now is threads also limited by the GVL, so in terms of parallelism, there is little to gain. We'd have to make threads work without the GVL for it to have real benefit. As it stands, it's probably not worth the effort without "free threading". Regarding actual Fiber going across threads, it was impossible before due to the default copy coroutine implementation, but I removed that and replaced it with a pthread implementation (fibers emulated on threads). Because of this, there is no longer any reason why fibers can't go between threads.
@rajaravivarmar
@rajaravivarmar 6 ай бұрын
I feel that this code introduces a meta programming unnecessarily. I know it is a cultural thing in Ruby and Rails to look for elegance (or perceived elegance) than simplicity, but it comes at a cost. For example, * Why use symbols and then constantize it? Just specify the class name. * Why use meta programming to call the `inherited` hook and create classes dynamically. Just create the classes manually. In my experience, simplicity beats elegance.
@glauberbannwart7165
@glauberbannwart7165 6 ай бұрын
Mu Fan congrats on sharing this comprehensive talk about the reinvention of the app. I find it interesting that ruby code tend to be structured in a slightly different way depending on the country or past experiences of a developer. Keep up the good talks!
@DaDek9
@DaDek9 6 ай бұрын
This was so helpful. Thank you
@budiardjo6610
@budiardjo6610 6 ай бұрын
really nice talk
@chunjie0515
@chunjie0515 6 ай бұрын
我很喜欢这位大师的发型👍
@rajaravivarmar
@rajaravivarmar 7 ай бұрын
I don't get it. You say that GIL prevents threads from executing in parallel, then in the last slide you suggest to use Threads for CPU intensive tasks. Did we suddenly start using JRuby or something? And example of Fibers in action would have been nice.
@iMagesh
@iMagesh 3 ай бұрын
Yes GIL prevents threads from executing in parallel. Threads can be used best for IO-intensive tasks and not CPU-intensive. Ractors are best for CPU-intensive tasks.
@paul4ashraf
@paul4ashraf 8 ай бұрын
Great talk <3
@sangeetatrivedi499
@sangeetatrivedi499 8 ай бұрын
Very nice
@mikopiko
@mikopiko 8 ай бұрын
Seeing CRuby + jit being so close to JRuby is quite impressive
@maxbezlegkii5902
@maxbezlegkii5902 8 ай бұрын
I enjoyed speaker vibe and speachfullness, thanks!
@Rebeliant1994
@Rebeliant1994 9 ай бұрын
Anyone knows if those files are in a public repository?
@siyaram2855
@siyaram2855 9 ай бұрын
Rails code is heavily written ith thread in mind, it will need a lot of rewriting. If you can contribute please do so.
@andreas2672
@andreas2672 9 ай бұрын
Awesome!
@torvic99
@torvic99 9 ай бұрын
Thank you!
@rafaelrezendecosta5250
@rafaelrezendecosta5250 10 ай бұрын
One question: What would be the difference between "Fiber" and "Ractor"? Which one would you recommend for the production environment?
@rajaravivarmar
@rajaravivarmar 7 ай бұрын
Ractors are not production ready yet. From a few benchmarks, they don't seem to offer any memory benefit over multiple processes. On the other hand Fibers are stable and was introduced a long time ago. They are production ready. With respect to use cases, Ractors are like sub interpreters to by pass the GIL/GVL. So if you have some parallel workloads, you can use this. Fibers are the equivalent of asyncio, event loop mechanism in Python and JavaScript equivalent. They can be employed where "concurrency" patterns solve your problem well. They are basically IO bound problems. For example, db calls, network calls, file reading and writing.
@rafaelrezendecosta5250
@rafaelrezendecosta5250 7 ай бұрын
@@rajaravivarmar Thank you very much for the explanation
@rajaravivarmar
@rajaravivarmar 7 ай бұрын
@@rafaelrezendecosta5250 Happy to help :)
@rafaelrezendecosta5250
@rafaelrezendecosta5250 10 ай бұрын
I liked your presentation.
@mikopiko
@mikopiko 10 ай бұрын
How come Ruby expects the user to implement the Fiber scheduler?
@ioquatix
@ioquatix 4 ай бұрын
It doesn't, you should use a library that provides it.
@mikopiko
@mikopiko 4 ай бұрын
@@ioquatix library another user created.
@PonsFrilus
@PonsFrilus 10 ай бұрын
Happy to have found this gem (<- see what I did here?) and sharing it w/ my coworker 😅
@vasy-tech
@vasy-tech Жыл бұрын
Isn't this whole presentation, in a nutshell, the same reasoning behind Ryan Dahl introducing NodeJS in 2010? 😊
@siyaram2855
@siyaram2855 9 ай бұрын
Yeh
@encapsulatio
@encapsulatio Жыл бұрын
Don't know what to think of it. You seem to be struggling even after investing so much time in it.
@paulfioravanti
@paulfioravanti Жыл бұрын
Steno-ing and live coding on stage while talking and trying to entertain is definitely not the same as just doing it at home :) The barrier to giving steno a try is lower than ever, so if you are even just a bit curious, I'd say give it a shot!
@health_doc
@health_doc 9 ай бұрын
It is harder to speak and code at the same time than you would think. Im curious as well as you are on the coding experience.. perhaps more videos with less talking and more coding better can show what we will hit if we jump the steno wagon
@encapsulatio
@encapsulatio 9 ай бұрын
@@health_docI agree.
@tothestars3958
@tothestars3958 Жыл бұрын
This is probably the most underwatched source control video listed on YT
@brashcrab
@brashcrab Жыл бұрын
proc > rape > girl for < sex 0:38
@mikopiko
@mikopiko Жыл бұрын
Good presentation, the sound need some improvement though
@een_schildpad
@een_schildpad Жыл бұрын
Great talk!!! These are essential skills for great software teams IMO. A great tip I received once while working on a PR to an opensource project was that if you feel the need to leave comments on your PR explaining parts of the code, maybe consider instead breaking those changes out into their own commits with commit messages explaining the change instead.
@GerardCaulfield
@GerardCaulfield Жыл бұрын
It seems like isolating gems installed to those required for the current test set + prod gems would have caught this. Rubocop is needed during the CI lint step, but probably not during the testing stage. This still leaves you vulnerable to accidental dependencies on dependencies of your testing framework (which if minitest is only anything defined within minitest itself), but the risk is much smaller. Also perhaps running independent end to end UI tests in staging (or better yet, prod behind a feature flag). I may be missing something though. Either way, I loved the talk
@HanamiMastery
@HanamiMastery Жыл бұрын
18:11 Deps module will overwrite the initialize method, setting defined deps as arguments.
@MrSaimran
@MrSaimran Жыл бұрын
Absolutely brilliant, love it!!!
@friendlyantz
@friendlyantz Жыл бұрын
Fantastic presentation! I wish I discovered the trick with multiple id's on Brave to settle down that nonsense poll with 'tabs' vs 'spaces'. Everybody knows we need to embrace more 'green' practices, stop wasting resources and littering 2, 4 and sometimes 6 'spaces' everywhere, when we can easily get away with only 1-tab. Just imagine how many wasteful 'space' characters are out there, wasting precious storage... OUTRAGEOUS
@friendlyantz
@friendlyantz Жыл бұрын
Thanks all for attending. I hope it was insightful and not too boring, I forgot half of my dad jokes though - It was a bit intense to present in front of such an Elite crowd, haha. Ping me if you need any clarifications / want to pair up. Also, UPD Re Sidekiq question at 37:00 on how to include a separate Sidekiq span into a calling span - there is a way to do it by updating your OT Sidekiq instrumentation config "c.use 'OpenTelemetry::Instrumentation::Sidekiq', { with 'propagation_style: :child }" Cheers and stay happy! The name... is TheFriendlyTelemetrAntz
@friendlyantz
@friendlyantz Жыл бұрын
Thanks all for attending. I hope it was helpful! Be happy, cheers
@milosgrujic915
@milosgrujic915 Жыл бұрын
Thanks for pushing the ruby community to the future Sam!
@JJcheesy
@JJcheesy Жыл бұрын
This is brilliant!
@JeremyMARQUES
@JeremyMARQUES Жыл бұрын
Mind has been blowned
@tonywok
@tonywok Жыл бұрын
Truly an impressive effort! Thank you for all your hard work :)
@phantomwhale
@phantomwhale Жыл бұрын
Thanks Adam, just hauled some old codebases up to ruby 3.2 so was starting to look around at what "new toys" this has unlocked for us and was eyeballing YJIT with great "how much of a rabbit hole is this going to be?!" trepidation! Will give it a crack next hack day and see if I can get a similar shift on our APM graphs :)
@andrewporterfield7115
@andrewporterfield7115 Жыл бұрын
Great talk, not great "question" from the audience at the end 😒
@ifitrollsrideit530
@ifitrollsrideit530 Жыл бұрын
This is both great work and a great presentation! Thanks Sam.
@mariannevelez9565
@mariannevelez9565 Жыл бұрын
😭 Promo_SM
@madamimadamtimallen
@madamimadamtimallen Жыл бұрын
Such a valuable talk!
@rlounge5286
@rlounge5286 Жыл бұрын
Great presentation, thanks! Looking forward to fiber based concurrency in Rails 7.1 🤞
@stenoknight
@stenoknight Жыл бұрын
This is magnificent!!
@SinghROAR
@SinghROAR Жыл бұрын
is this project on github?