- Видео 222
- Просмотров 512 389
SupeRails
Польша
Добавлен 7 мар 2021
⏳ Learn 10x faster than I did!
Hi 👋
My name is Yaroslav Shmarov.
I work as a Senior Ruby on Rails engineer, and the videos are inspired by my day-to-day work.
I spend my time researching perfect solutions to everyday problems, so that You do not have to!
I'm a big fan of monolyth apps (not microservices with APIs), and server-side rendering with Hotwire (not React/Vue for forntend).
Topics:
➡ Ruby gems
➡ Rails features (ActiveStorage, ActionCable, ActionText etc)
➡ Rails frontend (Hotwire, StimulusJS, ViewComponent)
➡ API integrations (AWS, Google, Twitter, Facebook, Github, Telegram, Stripe, etc)
➡ Code-Along Series
➡ Random tips and tricks
➡ HTML, CSS & JS
❤️ Ruby gems
💚 Rails features
💛 Extras
💙 Code-Along and Live freestyle videos
🤙 Let's connect:
➡ Become a 10x Ruby dev: superails.com/
➡ Read Text Blog: blog.corsego.com/
➡ GitHub: github.com/yshmarov
➡ Linkedin (best place for DMs): www.linkedin.com/in/yshmarov/
Hi 👋
My name is Yaroslav Shmarov.
I work as a Senior Ruby on Rails engineer, and the videos are inspired by my day-to-day work.
I spend my time researching perfect solutions to everyday problems, so that You do not have to!
I'm a big fan of monolyth apps (not microservices with APIs), and server-side rendering with Hotwire (not React/Vue for forntend).
Topics:
➡ Ruby gems
➡ Rails features (ActiveStorage, ActionCable, ActionText etc)
➡ Rails frontend (Hotwire, StimulusJS, ViewComponent)
➡ API integrations (AWS, Google, Twitter, Facebook, Github, Telegram, Stripe, etc)
➡ Code-Along Series
➡ Random tips and tricks
➡ HTML, CSS & JS
❤️ Ruby gems
💚 Rails features
💛 Extras
💙 Code-Along and Live freestyle videos
🤙 Let's connect:
➡ Become a 10x Ruby dev: superails.com/
➡ Read Text Blog: blog.corsego.com/
➡ GitHub: github.com/yshmarov
➡ Linkedin (best place for DMs): www.linkedin.com/in/yshmarov/
Ruby on Rails #167 Build a PWA
Let's turn an existing app into a PWA by adding a valid Webmanifest and Service Worker.
You can simply add the files to the /public folder, OR you can do it the Rails 8 way and add manifest.json and service-worker.js to ActionView!
Episode source code: github.com/yshmarov/insta2blog.com/commit/6bdcd957865ecaed5dc7802b5086ad98f6851ab0
Based on this blogpost: blog.corsego.com/rails-8-pwa
0:00 PWA on MacOS
2:38 Webmanifest
7:56 Service Worker
10:05 The Rails 8 Way
You can simply add the files to the /public folder, OR you can do it the Rails 8 way and add manifest.json and service-worker.js to ActionView!
Episode source code: github.com/yshmarov/insta2blog.com/commit/6bdcd957865ecaed5dc7802b5086ad98f6851ab0
Based on this blogpost: blog.corsego.com/rails-8-pwa
0:00 PWA on MacOS
2:38 Webmanifest
7:56 Service Worker
10:05 The Rails 8 Way
Просмотров: 561
Видео
Ruby on Rails #166 PWA (Progressive Web Apps) in Rails 8
Просмотров 1,1 тыс.21 час назад
Make your Rails website behave like an installable app by turning it into a PWA. All new Rails apps will have a webmanifest by default, meaning your app will be a Progressive Web App out of the box! In this episode we will explore how PWAs work. Based on this blogpost: blog.corsego.com/rails-8-pwa
Friendly S2E8 Radoslav Stankov does not need Hotwire
Просмотров 24814 дней назад
One more cool cat from BalkanRuby! This time we talk to Rado ex-producthunt, building his own product - AngryBuilding. He is the only developer and has a team of non-devs doing business stuff. He kindly reminds me that you don't always need "reactivity", and full-page reloads are good. Enough for many B2B cases! You can learn a lot from Rado about building businesses with Rails. His new startup...
Friendly S2E7 Nick Sutterer - Trailblazer daddy, ViewComponents grandpa, heart of the party
Просмотров 19121 день назад
Nick is one of the most fun exciting people to be around! He has a few superpowers: 1. Developing unique Ruby tools way ahead of their time He created Trailblazer as a better way to structure business logic in Rails apps than Services. Way ahead of DDD! github.com/trailblazer/trailblazer He created Cells that inspired ViewComponent github.com/trailblazer/cells 2. Presenting on stage. So far he ...
Friendly S2E6 Meet Balkan Ruby organiser Genadi Samokovarov 🇧🇬
Просмотров 14321 день назад
Since the first moment I met Genadi I felt “this guy is great to be around“! In this episode he talks about the 🇧🇬 ruby community, organising conferences, his current work and open source history. Find Genadi gsamokovarov.com/ Balkan Ruby balkanruby.com/ Join Sofia local ruby meetup rubybanitsa.com/
Friendly S2E5 Balkan Ruby! 👽 Irina Nazarova. Making $ on Dev tools 🤑🤑🤑
Просмотров 26921 день назад
This week we are visiting Balkan Ruby in Sofia, Bulgaria. We met a lot of people who impact our community. In this episode we discuss Sustainable Open Source with Irina Nazarova, CEO of very very @evil.martians balkanruby.com/
#165 Manage active sessions. Log out from another device remotely. Important security feature!
Просмотров 648Месяц назад
In some cases to enhance security of your application you will want to allow users to see all the devices/browsers they are logged in with. You would also provided a button to sign out of a device/browser. Here's how you can do it! Episode source code: github.com/corsego/165-security-manage-active-sessions/commit/028064768ecb033dc19d7f3179bb52d963a734f4 Based on this blogpost: blog.corsego.com/...
#164 The illegal loophole to scaffold Tables in Rails 7
Просмотров 1,6 тыс.Месяц назад
Since Rails 7 you can not scaffold tables in the index view any more. Instead you have a list of cards. Here's how you can bring back tables to your scaffolds. DHH hates this one simple trick! Episode source code: github.com/corsego/164-scaffold-erb-tables/commit/bbcd2d880824dfb838564b86024a8dd902028cf1 Based on this blogpost: blog.corsego.com/custom-scaffold-templates Resources: - www.reddit.c...
#163 Instant page loads with Turbo 8 prefetch (aka InstantClick)
Просмотров 971Месяц назад
Turbo 8 has been released! One of the core new features - hover-click preload acceleration (ala InstantClick). InstantClick makes an assumption about potential user behaviour: now whenever you hover on a link, it will fire a GET request to retrieve that page. So when you actually click on the link, it will load faster. Remarkable how effective it is for perceived performance. It can save hundre...
Friendly S2E4 Ufuk says there is definitely NO consipracy around RailsConf 2024 in Detroit!
Просмотров 1692 месяца назад
Audio version: www.friendly.show/2278525/14689994-why-detroit-meet-ufuk-the-secret-organizer-behind-rails-conf-2024 RailsConf is happening on 7-9 of May! And Ufuk is the lead organizer! He recently joined the Ruby Central board of directors. He is on the Shopify infrastructure team, working on making Ruby on Rails a better ecosystem 💪 We discuss: - What makes RailsConf 2024 special? - What is "...
Rails #162 Gem Ferrum - Generate PDF and PNG with Headless Chrome API. No Puppeteer, no NodeJS
Просмотров 8192 месяца назад
Thanks to URLBOX for sponsoring today's video! Convert URL to PNG/PDF with UrlBox: urlbox.com/screenshot-api?ref=sr Urlbox also helps to block Ads & Popups, Bypass Captchas, Auto-Accept Cookies Ferrum is Headless Chrome Ruby API. Ferrum lets you open a headless chrome browser and perform different actions: - visit web page - HTTP authenticate - find element by css/id - click link - fill in inpu...
Rails #161 Import ICS Calendar events with Gem iCalendar
Просмотров 3562 месяца назад
I love building calendars! ICS is the default format for a calendar file. Today we'll learn to read an ICS file and import it into our app. Recently 37signals released "Import ICS events" as a new feature in Hey Calendar. You can do it too! Episode source code: github.com/corsego/161-import-ics-calendar-events/commit/0e3704fc5728af60df6bc24f38062f46abfda4ba Based on this blogpost: blog.corsego....
Friendly S2E3 Meet SQLite Jesus, Stephen Margheim
Просмотров 2632 месяца назад
Steven is on a mission to make SQLite good enough for production. We talked about: - SQLite and Litestack - contributing to open source - being "the guy" in a niche, creating your own luck
Rails #160 Meta Tags. Open Graph, SEO, social sharing previews
Просмотров 5252 месяца назад
Rails #160 Meta Tags. Open Graph, SEO, social sharing previews
Rails #159 Access localhost anywhere with Ngrok
Просмотров 6403 месяца назад
Rails #159 Access localhost anywhere with Ngrok
Rails #158 Build a Calendar from zero. No external dependencies!
Просмотров 1,8 тыс.3 месяца назад
Rails #158 Build a Calendar from zero. No external dependencies!
Friendly S2E2 Amanda Perino. RailsWorld 2024. CFP open. How to become a speaker?
Просмотров 1923 месяца назад
Friendly S2E2 Amanda Perino. RailsWorld 2024. CFP open. How to become a speaker?
Friendly S2E1 Andy Croll - CTO at CoverageBook, Brighton Ruby, RailsConf
Просмотров 913 месяца назад
Friendly S2E1 Andy Croll - CTO at CoverageBook, Brighton Ruby, RailsConf
#155 Bonus: Is DocRaptor worth it? Puppeteer vs DocRaptor vs WeasyPrint
Просмотров 2973 месяца назад
#155 Bonus: Is DocRaptor worth it? Puppeteer vs DocRaptor vs WeasyPrint
Rails #157 Calendar Search with gem Pagy
Просмотров 6603 месяца назад
Rails #157 Calendar Search with gem Pagy
Friendly S1E10 Finale. 2023 summary, 2024 plans. What's coming to Rails 8?
Просмотров 1764 месяца назад
Friendly S1E10 Finale. 2023 summary, 2024 plans. What's coming to Rails 8?
Rails #156 Turbo 8 Morphing in real life
Просмотров 3,7 тыс.4 месяца назад
Rails #156 Turbo 8 Morphing in real life
Friendly S1E9 Mariusz Koziel - Ruby community in Poland, how to become CTO and CEO
Просмотров 2745 месяцев назад
Friendly S1E9 Mariusz Koziel - Ruby community in Poland, how to become CTO and CEO
#155 Generate, store, email PDF invoices. DocRaptor API, HTML to PDF, ActiveStorage, ActionMailer
Просмотров 9085 месяцев назад
#155 Generate, store, email PDF invoices. DocRaptor API, HTML to PDF, ActiveStorage, ActionMailer
Rails #153 Refactoring Hotwire Modals
Просмотров 1,6 тыс.5 месяцев назад
Rails #153 Refactoring Hotwire Modals
Ruby on Rails #152 Custom Turbo Streams. How to redirect from a form that is inside a turbo frame?
Просмотров 1,2 тыс.6 месяцев назад
Ruby on Rails #152 Custom Turbo Streams. How to redirect from a form that is inside a turbo frame?
Friendly E8 Andrea Rocca, Hotwire Cookbook, Rails UI, and flying foxes
Просмотров 1656 месяцев назад
Friendly E8 Andrea Rocca, Hotwire Cookbook, Rails UI, and flying foxes
Ruby on Rails #151 Advanced Hotwire modals
Просмотров 1,9 тыс.6 месяцев назад
Ruby on Rails #151 Advanced Hotwire modals
Thank you for this
Cool
You named the exactly reason why I created slim-select so long ago. I wanted to get off of jquery and no one else had a non jquery dropdown select library.
wow Brian, so nice to see you here! 🥰🥰🥰 Thanks so much for your great work!
thanks for the video, its reeeeally helpful
This is amazing. Thank you for the hard work and research on pwa with Rails. Looking forward to more videos as the new updates come on the Rails 8.
It creates different users for each provider, right? there's a way to not have this behavior?
hi Vinicio! this is actually a great idea for a next video. I actually have this implemented in saas.corsego.com/ - you can try it there TLDR: user has_many :identities identity = User::Identity.find_by(provider: auth.provider, uid: auth.uid) user = User.find_by(email: auth.info.email)
Thank you for this
Follow up PRs: 1. Upgrade to Rails main and use it's built-in PWA Controller (github.com/yshmarov/insta2blog.com/commit/e96afcf0531850d239bac50872762b657b74f1d7) 2. Import images from assets, not /public folder (github.com/yshmarov/insta2blog.com/commit/0c8579ffcd160a77d4648548f014c1daa16b8d4c)
Do you know if it is possible to add additional information in the form select search? For example first name, last name and email. <%= form.select :tag_ids, User.pluck(concat(:first_name, ' ', :last_name, '-', :email), :id), {}, {multiple: true, data: {controller: 'slim'}}%> I tried adding def full_name "#{first_name} + ' ' #{last_name}" end in the User model but I am getting unknow column full_name Thank you.
Try “map”. Something like User.all.map { |u| [u.id, u.full_name] }
@@SupeRails Thank you for the quick response. I tried <%= form.select :user_ids, User.all.map{|u| u.id, u.full_name}, {}, {multiple: true, data: {controller: 'slim'}}%> and I got a syntax error. syntax error, unexpected '}', expecting '.' or &. or :: or '['
Sorry I found my silly error. <%= form.select :user_ids, User.all.map{|u| [u.full_name, u.id] }, {}, {multiple: true, data: {controller: 'slim'}}%>. Works great now. Thank you so much! Love your videos
@@hsxn_sports maybe User.all.map { |u| [u.id, u.full_name] }
Great content!
Thank you for the video!
PWA 💪
Quite informative, thank you.
I just found your page and gave this video a watch. You helped me so much, thank you!
great video like always! I am currently trying to add pagination to a turbo frame that is update by a turbo stream that makes a call to an external API. The problem is doing this without a model, since I don't want to save this to a database (the external api makes calls to the MLS so lots of data is being sent). I am deciding between using the pagy js with stimulus or making my own stimulus controller and making API calls if the user presses next and cache so when the user presses previous it goes back and doesnt make another call (rate limits). Would be cool if you can make a video using pagy with js.
It doesnt work during bundle install though.
Rado is a gem, thank you for this talk
Marvelous tutorial, it blows my mind. Thank you.
I have completed the practice of video in the two days but i have learn a lot man. great
Finally a rails channel🎉
thank you, very informative.
If we are using the Array type does this mean it's Postgres only?
I have parctice all in 5 hours learn a lot from you man.
Hey guys, I just listened to this episode. Are the videos available for your presentations from RailsSaas? I can't seem to find them.
Hi Andy! It's been a year since the conference. I think @railssaas will never release the videos. Reason unknown. The camera crew looked very professional during the event. Maybe $omething went wrong...
@@SupeRails oh that's a real shame, especially since they sound like they would've been very polished. I'm particularly interested in your (impromptu) talk on the questions you get asked most often. Any chance you have something similar up somewhere? Thanks for the quick reply!
Героям слава) Дякую за туторіал
Adding Embedded Stripe Checkout is a very niche problem, but if you have it, this video should save you some time!
do you normally code straight into the application.html? not through partials? cheers
Thanks!
You are welcome Max!
awesome video, it will be really helpful if after the subscription the user id was updated using a broadcast from the backend and the user wouldn't have to refresh manually
How do you handle stripe coupons or discounts. Thank you for this video im building my first app with stripe in rails
Easy! Inside "Stripe::Checkout::Session.create" add this line: allow_promotion_codes: true,
nice
quite interesting, are you going to upload the entire session?
The full talks were recorded by the @railssaas conference team. It's been a year since the conference. I think that, unfortunately, they will never be released.
thanks for the tutorial, can you do a tutorial to use font awesome pro pls?
Hi Aldo! I think that the only change in your codebase will be to add a script like <script src="kit.fontawesome.com/your-unique-id.js" crossorigin="anonymous"></script> and you will be able to use pro icons and upload your own to a "fontawesome kit"
What keyboard do you use in this video? I love the sound. Also great video!
oh its a regular external white apple keyboard
Thanks for the video. I asked members in Telegram Ruby on Rails group and no answer. But if you use rails for api only app those data should be stored in JWT table in my opinion
Ярослав, як завжди, все концетровано, дуже корисно. Лайк та у збережені) Додав би ще проміжну таблицю LoginSessions для збереження всіх сесій користувача. Це дозволило б моніторити, чи входив хтось в його аккаунт з чужого пристрою. Поточна реалізація просто видаляє стару сесію і ці дані не зберігаються. Можно паморочитися реалізацію дозволених користувачем пристроїв, з яких можно входити в його аккаунт. Дякую. Співчуваю за Чернігів!
Great video👍😁 But i am thinking the best approach to save last time of that device is used So it become easy to delete too old session like what'sapp , telegram etc As there are lots of simple approach , but i want the effective apprach , as its not good to update db for every request Suggestions from anyone is appreciable
With my approach we read the db with each request to check if this session is valid (has not been logged out remotely); Writing to updated_at on each request is not perfect indeed. Alternatively you might have to do some Redis shenanigans 🤪 It's like here's an approach to see "users online" with timestamps: blog.corsego.com/set-user-status-online, and here's a Redis approach: blog.corsego.com/action-cable-broadcast-users-online
Good video. Thanks for the resource!
Awesome!
Thanks for the new video. Great job.
Thank for watching Yaro!
12:42 did it for me! Thank you very much
Mil gracias!! Justo lo que necesitaba y explicado paso por paso!
Can you share figma as well so that we can check table and screen simultaneously.
Sorry, I can’t share the Figma file
Would be good to do a walkthru of how to receive emails from AWS / SES and use the ActionMailbox. Looking forward to that
This is really a simplified explanation. Great one 😊
I know this video is a year old, but I want to thank you anyway. You saved me a lot of time and frustration.
Hi! I’m glad you found this video useful☺️ I think it will be relevant for a few more years. Currently there is no better approach with rails/hotwire
First of all, thank you for the excellent videos; I'm learning so much from them! However, I have a question and would greatly appreciate your help. I've followed all the steps mentioned, but a question has arisen: If I need to add another modal to the same page, such as an additional form, is it possible to do this using the same turbo_frame in the application? Or do I need to code a separate turbo_frame_tag in the index for each modal, each with different IDs? Thanks for your attention.
UI rule #1 - do not display more than one modal at a time on a page.
This saved me, after hours trying to figure out how to render an image on the email view, you've finally saved me with this tutorial! Ty :)