Our original panel podcast, Ruby Rogues is a weekly discussion around Ruby, Rails, software development, and the community around Ruby.
Similar Podcasts
Flutter 101 Podcast
Weekly podcast focusing on software development with Flutter and Dart. Hosted by Vince Varga.
Views on Vue
Vue is a growing front-end framework for web developments. Hear experts cover technologies and movements within the Vue community by talking to members of the open source and development community.
React Round Up
Stay current on the latest innovations and technologies in the React community by listening to our panel of React and Web Development Experts.
RR 422: Build Chatbot Interactions in Ruby with Daniel Pritchett
Sponsors Sentry use code “devchat” for $100 credit Cloud 66 - Pain Free Rails Deployments: Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues Panel Charles Max Wood Andrew Mason With Special Guest: Daniel PritchettEpisode Summary Daniel Pritchett started doing Ruby in 2012. Lately he has been working on publishing a book on building Chatbots in Ruby using a framework called Lita and does infrastructure for a startup called Gremlin. Gremlin reaches out to servers and tries to find weak spots so that you can be proactive about solving these problems and be better prepared when fires do start. Daniel’s real purpose in joining the show today was to talk about his book Build Chatbot Interactions. Daniel talks about what he defines as a chatbot. His book teaches you how to program a chatbot with a dozen or so different chatbot skills. Daniel talks about his first community chatbot, @elvis on #memtech IRC, which picked up immediate contributions from local developers. Daniel istructs listeners how to host chatbots and some of the skills that people can pull together for a chatbot from his book. The panel talks about things they would like to do with chatbots, as well as some of the drawbacks and things you have to be careful with. Each skill in Daniel’s book can be a stand-alone skill, or they can be combined. Daniel talks about what convinced him to write a book instead of doing tutorials online. If you would like to purchase the book, click here. Source code for all the book exercises can be found here. Links Lita Huebot Coffee Script Chatbot Azure Functions Heroku AWS Follow DevChat on Facebook and Twitter PicksAndrew Mason:Lazy DockerCharles Max Wood:Azure FunctionsDaniel Pritchett: Asciinema Serverless Doctoc Follow Daniel on Twitter, Github, and his personal blog and portfolio Most of the book’s code is also here Special Guest: Daniel Pritchett.
RR 421: Scaling and Shopify with Kir Shatrov
Sponsors Sentry use code “devchat” for $100 credit Cloud 66 - Pain Free Rails Deployments: Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues RedisGreen Panel Charles Max Wood Nate Hopkins Andrew Mason With Special Guest: Kir ShatrovEpisode SummaryToday’s guest Kir Shatrov is a production engineer on Shopify based in London, UK. Today, he and the panel are discussing capacity planning. Kir believes that capacity planning becomes a priority when your company starts losing money and your customers are suffering. When someone does get to the point of scaling their app, it’s important to look at the limitations of the hosting service. It is also important to remember that scaling is not a job that ever completes.Kir talks about his experience and time with Shopify and what types of changes have happened in the four years he’s been with the company. Kir explains that when Shopify was founded about 12 years ago, they were some of the first contributors to Rails, and Rails was just a zip file they shared over an email. This is important to know because the monolith code for Shopify has never been rewritten, so they put a lot of care into keeping it working. He talks about some of the techniques Shopify uses to avoid splitting into microservices when scaling their organization and how the multiple instances of the database is structured and managed from an opps point of view. He talks about what aspects of Shopify are open source and the approach to the architecture of the background jobs system.The panel discusses what should be done if you want to scale your project and move away from background jobs. Kir talks about what criteria his company uses to determine what moves to a background job and when it is too much to background something. The show finishes with Kir sharing some of his favorite tips, tricks, and approaches he’s used at Shopify. Links Heroku Digital Ocean Sidekiq Shopify job iteration Redis PostgreSQL Resque Strace RB Spy RB Trace New Relic Data Dog Fat Free CRM Follow DevChat on Facebook and Twitter PicksNate Hopkins: Open source Cats (Maine Coon and Russian Blue) Charles Max Wood:75 Hard challengeKirill Shatrov: Ruby Hack Challenge Follow Kirill Shatrov @kirshatrov on Twitter and @kirs on Github Special Guest: Kir Shatrov.
RR 420: Stimulus
Sponsors Sentry use code “devchat” for $100 credit Cloud 66 - Pain Free Rails Deployments Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues RedisGreen Panel Charles Max Wood Dave Kimura Andrew Mason Episode SummaryToday’s topic is the Stimulus library. Stimulus is actually a JavaScript framework and library, but it’s also built by Basecamp, so it works really well in Rails. There is a demand for rich client side interactions, and Stimulus fills in some of the gaps. The panelists talk about some of their experiences with Stimulus versus jQuery. They talk about different use cases for Stimulus, how it works, and how it can help your project. One of the main draws of Stimulus is that the amount of code needed to implement a feature with Stimulus is very small comparatively. Also, frameworks like React weren’t created for Rails, and so adding React to a Rails application can be quite painful. Stimulus follows the Rails philosophy to keep things simple and unobtrusive, so if you ever found that Stimulus was not a right fit for your application, extracting it would be a major overhaul.Links Stimulus Cocoon React Gatsby Capybara Cypress Stimulus controllers Building Something Real Drifting Ruby episode John Beatty Stimulus tutorial jQuery Follow DevChat on Facebook and Twitter PicksDave Kimura:Raspberry Pie 4Charles Max Wood: Women’s World Cup Fox Sports Andrew Mason: Surfing Stimulus workshop at RailsConf
RR 419: Microservices and Storyscript with Steve Peak
Sponsors Sentry use code “devchat” for $100 credit Triplebyte offers $1000 signing bonus RedisGreen Panel Charles Max Wood Dave Kimura Andrew Mason With Special Guest: Steve PeakEpisode Summary Today’s guest Steve Peak has been an entrepreneur and developer for a decade specializing in building tools. He built the company Codecov, one of the top performers in the github ecosystem. His next project is Storyscript, first and only top level programming language that focuses on business logic. The panel begins by discussing what a microservice is and what makes a good one. One of the difficulties with microservices that there is no standardization, and that’s where microservice.guide can help. The panel talks about some of the issues of having too many microservices and Steve offers Possible solutions. Steve delves into some of the abilities of Story Script in stringing together multiple services in different languages and how it can simplify things. They talk about if it’s possible to have too many microservices and when does a microservice become a monolith microservice. They talk about the possibility of inflating the production environment with unneeded memory by using microservices. Steve offers advice on how to go from poor decisions to responsible decisions when using microservices, how Storyscript can help when multiple microservices are in use, and where he sees the industry heading. Links Storyscript Slack Microservice.guide Kubernetes Stripe API Hub.storyscript.io Json Machine Box Docker Kafka Kong Devise Follow DevChat on Facebook and Twitter PicksDave Kimura:Sidecar from macOS CatalinaCharles Max Wood: 2 episodes a week of JavaScript Jabber Netlify CMS Steve Peak:Follow Steve on Twitter @iopeakSpecial Guest: Steve Peak.
RR 418: The Life and Death of a Rails App with Olivier Lacan
Sponsors Sentry use code “devchat” for $100 credit Triplebyte offers $1000 signing bonus RedisGreen Panel Charles Max Wood David Kimura Nate Hopkins Andrew Mason With Special Guest: Olivier LacanEpisode SummaryOlivier Lacan joins the panel again. He currently works for Pluralsight. Today they are talking about the spectrum of creating a Rails app, or any app, from the birth of the idea to the death of the project. They stress the importance of planning for updates. Olivier talks about his experience in maintaining Code School, which has now been incorporated into Pluralsight. David also shares his experience with the life and death of a project. They talk about technical debt and the trouble that it can create, and the importance of making your Rails application maintainable. Olivier talks about his experience when Code School was acquired by Pluralsight. The panel discusses the inevitability of the end of an application and different ways of managing company integration. They talk about ways to plan for shutting down a project. One of the best ways to make integration easier is to clean up your code and always be considering what data needs to be kept and what can be truncated. They discuss some of the issues around storing customer data and respecting individual privacy. The panel talks more about sunsetting, or the ending of an app. People often think that shutting down an app doesn’t have any impact, but it is important to give customers time to adjust to change, as Olivier found out with Code School. Dave talks about different reactions that one could have when change happens. The panel talks about some of the emotional implications of having to destroy something that you’ve worked hard on for a long time. Ultimately, your project isn’t where you should put your self-worth, because projects will come to an end. When things do end, it’s important to look back at where you’ve come from and the impact that you’ve had on people. Links Lambda Dependabot Peoplecode Pluralsight Trackable Paranoia Discard Rails for Zombies Follow DevChat on Facebook and Twitter PicksAndrew Mason:Wild Sardines from Wild PlanetDavid Kimura:5K screens from LGCharles Max Wood: Pluralsight New Show: Adventures in DevOps Butcher Box Hotels.com Nate Hopkins:Keynote speech from RailsConfOlivier Lacan: Oatley Horizonzerowaste.com Adobe Lightroom CC Special Guest: Olivier Lacan.
RR 417: The Devchat.tv Mission and Journey with Charles Max Wood
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus RedisGreen Cachefly PanelCharles Max WoodEpisode SummaryCharles talks about his journey as a podcaster and his mission with Devchat.tv. Devchat.tv is designed to home podcasts that speak to all developer communities. Charles also plans Devchat.tv to host shows for technologies that are on the verge of a breakthrough and will be a lot more widely available in the near future such as Artificial Intelligence (AI), Internet of Things (IoT), Virtual Reality (VR) and Augmented Reality (AR). There are new shows being added continuously to reach out to new communities, some examples of which are: a Data Science show, a DevOps show and an Open Source show.As a kid, Charles would record his own shows on a tape recorder. He was always interested in technology. While studying Computer Engineering at Brigham Young University, he worked in the University's Operations Center. Upon graduation, he started working for Mozy where he was introduced to podcasts. Listen to the show to find out the rest of Charles' story, some of the lessons and tips he learned throughout his journey and the evolution of the shows on Devchat.tv.If there isn't a show for your community and you would like there one to be, reach out to Charles. Also if there was a podcast about a programming related subject that ended abruptly and you would like it to continue, reach out to Charles. Devchat.tv would like to host these podcasts.Links Charles' Twitter EverywhereJS JavaScript Community EverywhereRB Ruby and Rails Community Find Your Dream Job As A Developer Devchat.tv on Facebook Devchat.tv Picks EverywhereJS JavaScript Community EverywhereRB Ruby and Rails Community Netlify Eleventy https://github.com/cmaxw/devchat-eleventy
RR 416: The Difference between Devise and Warden with Leonardo Tegon
Sponsors Sentry use code “devchat” for $100 credit Triplebyte offers $1000 signing bonus Cloud 66 - Pain Free Rails Deployments Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues Panel Charles Max Wood David Kimura David Richards Andrew Mason With Special Guest: Leonardo TegonEpisode Summary Leonardo Tegon is a software developer at Plataformatec, the company that created Devise. Leonardo talks about how he ended up at Plataformatec and shares a little bit about the talk he gave about alternative authentication methods. He talks about the difference between Devise and Warden. Some of the panelists have had some issues with cache warming in Warden, and Leonardo shares ways to get around it. They talk about authentication strategies used in Warden and Devise and different strategies that tap into hardware. Leonardo talks about some of the features coming to Devise, although their primary focus is on maintenance. He talks about the work that goes into such a long-standing project, especially concerning maintaining the integrity of the code but also allowing for progress. They talk about some of their favorite features of Devise. Devise is easy to set up and very functional, but also intimidating. When a library is so big and does so much, it has to make some assumptions. Leonardo talks about how they decide what goes into the library at this point and how easy is it for new maintainers to contribute to the project. Leonardo ultimately wants to make it easier for people to jump in.Links Devise Warden Cache warming Magic email link Wrapper WebAuthIn Follow Leonardo on Twitter and GitHub @tegonl Follow DevChat on Facebook and Twitter PicksLeonardo Tegon: Teach by learning, lead by teaching by Beth Sajevo Fluent Forever: How to Learn Any Language Fast And Never Forget It by Gabriel Wyner Andrew Mason: Rethinking the View Layer with Components by Joel Hoxley Repo for the talk David Kimura: Water pressure gauge tester Other World Computing RAM Charles Max Wood: Repurpose New shows coming: Adventures in DevOps, Data Therapy, Sustain Our Software, Adventures in Block Chain, Adventures in .net David Richards:CalTopoSpecial Guest: Leonardo Tegon.
RR 415: Code Free Developer Interview with Pete Holiday
Sponsors Sentry use code “devchat” for $100 credit Triplebyte offers $1000 signing bonus Cloud 66 - Pain Free Rails Deployments Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues Panel Charles Max Wood Dave Kimura Andrew Mason Nate Hopkins With Special Guest: Pete Holiday Episode SummarySpecial Guest Pete Holiday is the director of engineering at a company called Samsara and specializes interviewing software engineers. The panel begins by talking about some of the trends they see in tech interviews, specifically the move towards code-heavy interviews. Pete does not think take home tests accurately simulate a work environment, and shares his preferred technique. The panel discusses the most important things to look for in an interview, such as how good of a fit they will be with the company culture. They discuss the importance of hiring junior developers, some of the ethics of internships and compensating for take home projects.They turn the conversation to interview questions and what should be asked to evaluate a candidate. They go through some potential questions and methods for coming up for interview questions. Pete shares the interview process he designed. The panel talks about the importance of resumes. On the subject of resumes, they discuss how to avoid unconscious bias and maintain diversity in the workplace. They give a few tips for people being interviewed, such as doing interviews to keep you skills fresh, even if you aren’t necessarily looking for a job. The show ends with the panel recapping the most important points of their discussion. They emphasize that as the interviewer, it is imperative that you know what you want and are looking for in a new hire. When you’re doing the interviews, tech skills are important but the fit with the company is more important, and it’s your job to get all of the right information out of the candidate. People interviewing are encouraged to proofread their resumes, ask questions to find out if the company is a right fit, and not be afraid to ask for some accommodations in an interview. Links Bootstrap Sass Devise Pundit Friendly ID Glassdoor Follow DevChat on [Facebook](https://www.facebook.com/DevChattv/? tn =%2Cd%2CP-R&eid=ARDBDrBnK71PDmx_8gE_IeIEo5SnM7cyzylVBjAwfaOo1ck_6q3GXuRBfaUQZaWVvFGyEVjrhDwnS_tV) and Twitter PicksAndrew Mason: Rails ERD gem Dave Kimura: Plant UML Drill propeller Charles Max Wood: Find Your Dream Coder Job EverywhereRB Nate Hopkins: Hamilton Hamilton Lottery app Pete Holiday: Follow Pete on Twitter The Manager’s Path How F*cked Up is Your Management Jennifer Tu on Confreaks Special Guest: Pete Holiday.
RR 414: Docker Talk
Sponsors Sentry use code “devchat” for $100 credit Triplebyte offers $1000 signing bonus Cloud 66 - Pain Free Rails Deployments Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues Panel Charles Max Wood Andrew Mason Dave Kimura David Richards Episode SummaryToday the panel is talking about the many applications of Docker. They talk about where Docker fits into the development lifestyle and what kind of applications Docker can help with. Dave goes over some of the some of the Docker terminology, how to set up some basic scenarios, and some of the difficulties often encountered by first time users. They talk about how to make sure you’re putting together a Docker file correctly.The panel agrees that Docker had a different workflow from other systems, and discuss some of the tradeoffs of using docker. They mention some specific use cases for docker and what it’s like to migrate to Docker. Dave cautions listeners that databases needs to exist outside of Docker or Kubernetes. Dave and Andrew argue whether or not Docker belongs in the developer environment.The panel discusses ways to maintain productivity when introducing Docker and give some advice to programmers who are new to using Docker. They talk about cases where using Docker can be very helpful. They wrap up by talking about how to get started with Docker in your CI/CD and how to run tests with Docker.Links Docker Microservices Kubernetes ISO file Docker images Bundler Ubuntu Red Hat Alpine Linux Sinatra Podwrench Sidekick Foreman CI/CD AWS Azure DigitalOcean Elastic Beanstalk Google Cloud Redis Cloud Native Development Follow DevChat on Facebook and Twitter PicksAndrew Mason:Rails Flip FlopDave Kimura: Cloud Native Development Dewalt Flexvolt circular saw Charles Max Wood:Everywhere RBDavid Richards:Warren Buffet's letters to his shareholders
RR 413: When Your Tools Interrupt Your Coding Process
Sponsors Sentry use code “devchat” for $100 credit Triplebyte offers $1000 signing bonus Cloud 66 - Pain Free Rails Deployments Try Cloud 66 Rails for FREE & get $66 free credits with promo code RubyRogues Panel Charles Max Wood David Richards Andrew Mason Nate Hopkins David Kimura Episode SummaryIn this episode of Ruby Rogues, the panel discusses how having too many tools in your code can make things more complicated. They talk about if the processes and tools that hurt productivity should be taken out. They question if outdated but harmless tools should be updated for newer ones that have more functions.They discuss the difficulty with adopting new tools since the setup process takes time away from production. They each talk about their different editor setups. The necessity of all this different tools is questioned. They note that there is a trend to take a good thing that solved a real-world problem and introduce it into places that it doesn’t need to be, making development more complex. It is advised that programmers focus on shipping an application rather than just writing the code in order to simplify tooling. They discuss whether backend as a service systems are part of the problem. They advise tech companies to consider if they are ever going to sell or migrate when considering a new tool. The panel talks about if it’s possible to end up fighting against the tools that have always been used rather than infrastructure or coding tools. They conclude by agreeing that it is important to be candid within companies to prevent this overtooling Links Vim Emax Homebrew Git Repo Paperspace Docker VS Code Coder StackBlitz CodeSandbox Jupiter Kubernetes Graphite StatsD Follow DevChat on Facebook and Twitter PicksNate Hopkins: Screen sharing with Mac messaging The Band of Brothers Andrew Mason:CakebrewDavid Kimura: Brew Bundle Dump Superstore Charles Max Wood: TSA Pre Check Clear David Richards: Great at Work: How Top Performers Work Less and Achieve More by Morten T. Hansen
RR 412: Asynchronous Jobs on Client Side and Server Side
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus RedisGreen Cachefly Panel Dave Kimura Andrew Mason SummaryDave Kimura starts the episode by defining asynchronous jobs; he and Andrew Mason discuss the differences between server side and client side asynchronous jobs. They discuss use cases and address scenarios for which asynchronous jobs can be used for. Dave answers Andrew’s questions about tools, gems, and libraries. Dave expresses his love for Active job and advocates for Gitlab. The panel discusses overuse and misuse of asynchronous jobs and times when it is better not to use this tool. Dave shares what he thinks makes a good microservice; he and Andrew discuss where people go wrong with microservices.Links https://github.com/javan/whenever https://github.com/moove-it/sidekiq-scheduler https://github.com/ondrejbartas/sidekiq-cron https://github.com/renderedtext/render_async https://edgeguides.rubyonrails.org/active_job_basics.html https://www.facebook.com/RubyRogues https://twitter.com/rubyrogues PicksAndrew Mason:https://github.com/igorkasyanchuk/rails_pdfDave Kimura:Levi’s wallet
RR 411: What causes Ruby memory bloat? with Hongli Lai
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus RedisGreen Cachefly Panel Charles Max Wood Dave Kimura Eric Berry Joined by Special Guest: Hongli LaiSummaryEric Berry starts by sharing how Phusion and Phusion passenger changed his career and thanks Hongli Lai for his work. Hongli talks about where Phusion is now and shares what's new with passenger 6. The panel compares passenger and puma and Hongli explains why passenger is the better choice. The panel wonders about deployment strategies and Hongli shares what he has seen done with Passenger.Hongli discusses the article he wrote about memory bloat. He starts by explaining why he wrote the article. The panel discusses what causes memory bloat and how to identify memory bloat versus memory leaks. Hongli explains how the system memory allocator works and why people are using Jemalloc instead. The panel discusses Jemalloc and wonders why Ruby doesn’t adopt Jemalloc. Hongli shares his magic solution for solving the memory bloat problem and other tips for managing memory.Links https://www.phusionpassenger.com/ https://github.com/phusion/passenger-docker https://devchat.tv/ruby-rogues/rr-403-rails-needs-active-deployment-with-stefan-wintermeyer/ https://blog.phusion.nl/2019/03/14/what-causes-ruby-memory-bloat/ https://www.joyfulbikeshedding.com/blog/2019-03-14-what-causes-ruby-memory-bloat.html https://www.joyfulbikeshedding.com/blog/2019-03-29-the-status-of-ruby-memory-trimming-and-how-you-can-help-with-testing.html https://en.wikipedia.org/wiki/Lars_Bak_(computer_programmer) https://twitter.com/honglilai https://www.facebook.com/RubyRogues https://twitter.com/rubyrogues PicksDave Kimura: LEGO Marvel Super Heroes Avengers: Infinity War The Hulkbuster Smash-Up 76104 Building Kit (375 Piece) Samsonite Explore Eco 2-Piece Softside Set Hongli Lai: https://www.blinkist.com/ https://euruko2019.org/ Eric Berry: Codefund.io https://devchat.tv/ruby-rogues/ Charles Max Wood: Open source sustainability podcast https://podwrench.com/ Podcast assembly line Podcast Laboratory https://mybuild.techcommunity.microsoft.com/home#top-anchor Oz con https://elixirconf.com/2019 https://finconexpo.com/ https://podcastmovement.com/ https://go.2000books.com/ Special Guest: Hongli Lai .
RR 410: Kubernetes with Kurtis Rainbolt-Greene
Sponsors Sentry use code “devchat” for 2 months free Triplebyte $1000 signing bonus Redisgreen Cachefly Panel Andrew Mason Nate Hopkins Eric Berry David Kumira Joined by Special Guest: Kurtis Rainbolt-GreeneEpisode SummaryKurtis has been working with Ruby and open source for 12 years. These days he works on maintaining large libraries like VCR. He talks about what VCR is, why it’s useful, and some of its limitations. The real topic of today’s show is Kubernetes. Kubernetes is an open-source container orchestration system for automating application deployment, scaling, and management. Kurtis describes what it is and some of the features it has.The panel discuss about some of the limitations of Kubernetes, and where it really shines in the development lifecycle. Kurtis advises Kubernete users to leave their databases as an outside source and not put them in Kubernetes, as well as other things to avoid. They talk about methods for encrypting information within Kubernetes.The panel discusses how Kubernetes compares to other services and some of the unique features.The panel discusses what it’s like to learn Kubernetes. Kurtis advises listeners who are learning Kubernetes to consult with other people who are experienced with. Kubernetes has some different terms for functions that can be confusing to newcomers. It can take between 3 and 6 complete weekends to become comfortable using Kubernetes. Kurtis shares how to transfer a Rails app into Kubernetes. To get started with Kubernetes on the cheap, find a computer with a decent amount of ram,install Ubuntu and MicroK8s for a perfect tinkering playground.Links Sinatra VCR API pod/container Loki by Grafana Stateless services Namespaces Chef Puppet Dockerfiles Heroku PG Bouncer Hephy Workflow Gitlab Auto DevOps Helm Ubuntu MicroK8s Azure Cloud66 Config maps Ingress Prometheus CD/CI Hashi Follow DevChat on Facebook and Twitter PicksNate Hopkins: Heroku How To Be Like Walt book Real Genius film Andrew Mason: Peacock VSCode extension Drifting Ruby ep. 181- Intro to Kubernetes David Kimura: Microk8s.io and ‘Microk8s.reset’ command Kubernetes Slack channel Kurtis Rainbolt-Greene: Satisfactory game Kubernetes on Rails video series Special Guest: Kurtis Rainbolt-Greene.
RR 409: Turning Fat Models Into Skinny POROs with Jason Swett
Sponsors Sentry use code “devchat” for 2 months free Triplebyte $1000 signing bonus Redisgreen Panel Charles Max Wood Dave Kimura Special Guest: Jason SwettEpisode SummaryJason Swett is a former host on Ruby Rogues. Now he has his own show, Ruby Testing Podcast and runs the site codewithjason.com where he teaches Rails testing. Today, Jason discusses turning fat models into skinny POROs (Plain Old Ruby Objects). He once read an article that said you don’t have to put all your code into active record models, that you can create plain ruby objects. These can go into active models if you want, but you’re not limited to active record models, you can make your own classes. This realazition greatly impacted the way he structures his code.The panelists talk about the individual ways the structure their code. Jason discusses other structuring methods he has tried and gives some examples of using skinny POROs in the apps he works on. They discuss the pros and cons of using skinny POROs instead of active models, pros being it cleans up the model and makes testing easier, and the cons being it adds to a bit of overhead to the application, as somebody unfamiliar with the application might recreate parts if you don’t have an index.The panel discusses how to decide when you want to create a new PORO. They talk about each of their methods and discuss the the usefulness of token generators. They conclude that in order for skinny POROs to be effective in code, they must be well factored and organized, and that unfortunately some complexity in code is unavoidable.Links POROs- Plain Old Ruby Objects Model Active record models Namespace Service objects Value objects CSS Form object Tokens Initializer Singleton object PicksDave Kimura: Reek Kubernetes Charles Max Wood: Cloud66 Podwrench Podcasting booth New podcasts coming to DevChat-- if you want to revive a podcast that has stopped airing, contact Charles Max Wood Programming Podcasters Slack chat Jason Swett: Practical Object Oriented Design in Ruby Ruby Testing Podcast Codewithjason.com Special Guest: Jason Swett.
RR 408: Zeitwerk with Xavier Noria
Sponsors Triplebyte $1000 signing bonus Sentry use the code “devchat” for $100 credit RedisGreen Panel David Kimura Eric Berry Andrew Mason Joined by special guest: Xavier NoriaEpisode SummaryThis episode of Ruby Rogues features Xavier Noria, who has a background in mathematics, but started software in 2000. He has been freelancing for the past 10 years, working especially in open source. He received the Ruby Hero award in 2010. His latest work is with his own creation, Zeitwerk, a more efficient code loader for Ruby. Zeitwerk will be included in Rails 6, but is an independent gym for now. Xavier talks about his inspiration for Zeitwerk and his desire to improve constant outloading in Rails.The panelists delve into the features of Zeitwerk. Any conventional library can use Zeitwerk, so you don’t have to write requires. Zeitwerk is designed to make your development work easier because you don’t have to worry about including in or requiring files in your code snippets, it will intelligently auto load those in. Zeitwerk functions slightly different from classic mode Ruby, because in Zeitwerk, you don’t go constant name to file, instead you are given a file name first, and then add it to a constant. Xavier delves into the limitations of classic mode and the const-missing callback, and how Zeitwerk improves upon this problem by using only absolute paths and module outloading instead of const-missing. The result is that, in general, things load faster.They discuss indexing of absolute paths within Zeitwerk, how one of the principles of Zeitwerk is to be as lazy as possible, the memory footprint, and the configuration needed to opt into Zeitwerk. Overall, Zeitwerk is going to work like Ruby. There are no special rules, it has the same semantics as Ruby, fewer gotcha’s if any at all, control over inflection, ways to introspect, and a way to log the activity of Zeitwerk.Links Zeitwerk Kubernetes API HTML Const-missing callback Nesting Ancestors Module outloading Bootsnap Bootstrap Absolute path PicksDavid Kimura:Nerf GunsEric Barry: Octotree Chrome extensionXavier Noria:Time TrapSpecial Guest: Xavier Noria.