Three Rubyists having conversations and interviewing others about Ruby and web development.

Jason Goes to Infinity (and Beyond)

June 23, 2023 0:45:47 87.91 MB Downloads: 0

On this episode of Remote Ruby, Jason, Chris, and Andrew reunite after a hiatus, starting their conversation with a playful idea of starting a band and Andrew possibly recording a new podcast intro. A trip down memory lane brings forth their childhood musical preferences before they shift to an in-depth conversation about programming. Andrew and Chris talk about their recent experiences refactoring code and the complexities they encountered, highlighting how such processes can improve performance and efficiency.  The discussion touches on topics ranging from Rails features and documentation, the usefulness of Ruby Infinity, the elegance of removing conditionals in programming, and using programming languages like Haskell and Elixir, their unique features, and how they handle conditionals differently. Also, Jason announces he’s planning a Southeast Ruby conference for early 2024 in Memphis and how he wants to focus on the community aspect. Hit download to hear much more! [00:00:24] Jason, Chris, and Andrew reminisce about their musical preferences during their childhood, and they acknowledge it’s been a while since their last meeting, partially dues to Jason and Andrew contacting COVID. [00:04:53] The conversation shifts to programming, where Andrew and Chris share that they’ve been writing a lot of code but struggle to remember specifics. Chris talks about his recent work on refactoring the Acts As Tenant gem to depend on Rails Current Attributes instead of the RequestStore gem. [00:08:24] Chris tells us he’s not sure whether he’ll merge his refactor, as he’s concerned about potentially creating more problems for himself while maintaining the gem.[00:09:30] Andrew discusses his recent experience of refactoring code, which involved rewriting a method multiple times, working with polymorphism across models, dealing with scopes, and solving problems related to pagination. He found the process challenging but ultimately successful.[00:12:57] We also hear something that happened where Andrew improved loading efficiency and performance by deferring the loading objects until a button is clicked rather than loading all at once during page load.[00:13:49] Jason shares an instance where he used Ruby Infinity in his code for unlimited job posts in an application he built a few months ago. [00:14:56] Chris finds it intriguing that infinity is located under the float class in Ruby. Jason repeats the benefits of using Ruby Infinity, including how it simplifies arithmetic operations in the code and avoids errors. [00:17:19] Chris shares a story about developing a generic pagination method for APIs in Jumpstart Pro. He mentions the process took several iterations to design a system flexible enough to handle various API structures. [00:22:03] Chris brings up programming learning experiences and highlights how people often think in terms of “IF statements” while trying to solve problems, which results in their code having many “IF statements.” [00:24:12] Jason shares a story from a CS class he took, and the first day of class the teacher asked, “How do you make a peanut butter and jelly sandwich?”[00:25:16] Andrew shares his experience teaching his younger brother who’s studying computer science and how you have to learn how to break down problems, and Chris tells us some instances and emphasizes how these little insights can change one’s perspective on coding. [00:28:21] Jason ponders about the potential impact of learning programming using a functional language as the first language. [00:28:52] Chris talks about his experience learning Haskell and its ability to define the same method name with different arguments. He also discusses the utility of removing conditionals in programming, specifically citing the presence method that Active Support adds in Ruby on Rails.[00:33:43] Jason and Andrew bring up guard clauses, which they prefer over conditionals, and Andrew says are easier to read than If or Unless statements. [00:36:26] They further discuss the potential trade-offs of using pattern matching methods, which allow for different logic based on input but can complicate code updates. [00:39:07] Jason mentions that he’s planning a Southeast Ruby conference in Memphis, in early 2024, and wants to focus on the community aspect. He notes that Ernie Miller will be helping him organize it, and he’s aiming for a small, affordable event with around 50 to 100 attendees that doesn’t lose or make money.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterActs As TenantRequestStoreHaskell Ruby InfinityRuby Radar TwitterRuby for All Podcast

Diving Into The Deep End of Docs

June 09, 2023 0:59:20 85.45 MB Downloads: 0

In this episode, Chris and Andrew have a candid discussion about their programming experiences, the demanding nature of their jobs, and the joy and complexity of coding.  They have a conversation on challenges with dependencies, the new branch settings on GitHub, TypeScript, JavaScript, and the functionality and benefits of using JSDoc. They also dive into the importance of flexibility in code, the evolution of coding practices, their preference for smart editors that provide real time updates, and the topic on the use of AI tools in programming is discussed and whether AI assists or inhibits the developer’s thought process. Also, Andrew tells us about Prefab, a cool Rails tool he recently discovered and found very useful. Hit download to hear more! [00:00:35] Andrew tells us he has an app to monitor his activity and sometimes finds himself working for 11 hours straight, and Chris reminisces about the early days of learning to code and the excitement of late night programming. [00:04:58] Chris was struggling with dependencies in his work and considers writing his own basic glob functionality. [00:11:38] The guys discuss the utility of new branch settings on GitHub, and Andrew tells us he made his own commitlit config and updated his prettier config on his GitHub. [00:12:52] They move onto the topic of JavaScript and TypeScript, bringing up JSDoc, and Andrew explains the functionality and benefits of using JSDoc. He shares his discovery that JSDoc can be used to add TypeScript functionality without writing TypeScript, primarily using type comments. [00:16:47] Chris notes that this approach allows for middle ground between JavaScript and TypeScript, enhancing editor hints without the complexity of a fully typed language. [00:22:50] Chris tells us his journey began in college where he learned multiple languages such as Ruby, Python, C, and Visual Basic. He emphasizes the importance of flexibility in code, allowing it to evolve over time. [00:25:18] Andrew shares his dislike for Sorbet and talks about his preference for Solargraph in VS Code, a language server that uses YARD docs for typing.  He’s found this useful in his work, particularly when refactoring. [00:27:55] We hear about the greatest code Andrew’s ever written, and Chris and Andrew discuss the use of dynamic languages and how it’s crucial not to lose the essence of languages like Ruby by over-imposing typing. [00:33:49] Chris discusses the use of AI tools in programming, such as GitHub’s Copilot, and notes that while they’re useful in generating codes, but they may limit the developer’s thought process since they tend to rely on AI’s suggestion without thinking through the problem. [00:37:26] Andrew explains why he showed Chris some documentation he generated from ChatGPT 4, and they both agree that AI-powered tools can make documentation more efficient. [00:46:53] Andrew talks about his experience with Product Hunt, and a very useful Rails tool he recently discovered called, which allows developers to target their Rails logs for specific user issues.[00:53:12] Chris and Andrew discuss the difficulty of dealing with Twitter API and Reddit API pricing, lamenting the high costs for developers. They also talk about their frustrations with companies that acquire and shut down successful third-party apps instead of supporting them.Panelists:Chris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterAndrew’s commitlint-config Tailwind CSS v3.3: Extended color palette, ESM/TS support, logical properties, and moreUp your JavaScript autocomplete game using JSDocs.YARDJSDoc supportGitHub CopilotKonnor Rogers TwitterPrototyping signatureProduct HuntPrefab Feature: Dynamic Log Levels (YouTube)PrefabHad a call with Reddit to discuss pricingApollo

The GoRails Gang Takes Over | Brent Crutchfield

June 02, 2023 0:44:07 84.72 MB Downloads: 0

On this episode of Remote Ruby, Chris and his GoRails team is taking over since Jason and Andrew are traveling. Today, Chris has joining him Kent Crutchfield, who’s a customer service expert for GoRails, and Collin Jilbert, who’s a Ruby/Rails Dev at GoRails.  As we kick off this episode, we start by exploring a captivating debugging situation involving GoRails servers, the C language, and the operating system Kernel. Chris and Collin discuss their ongoing Hatchbox integration project, and Kent’s expert handling of complex tasks. We also hear about Chris’s new interactive forum series coming out soon, some advice for aspiring coders, and there’s a discussion around tools like GitHub Copilot and their potential impact on developers’ growth.  We’ll wrap things up with Kent sharing his favorite part about joining the team, the rewarding experiences he’s had, and the sheer love for his work in Ruby and Rails.  Hit download to hear much more! [00:00:58] Kent shares his background in customer support and how he started working at GoRails. [00:02:49] Chris and Collin discuss a challenging debugging situation they had to solve involving the C language, GoRails servers, and the operating system Kernel. They also remember a previous conversation regarding the complexities of CSS optimization at scale based on a talk from a GitHub employee. [00:07:50] The team has been working on Hetzner integration for Hatchbox, and despite the complexities of Hatchbox, Kent finds the challenges interesting and satisfying to overcome. He also highlights there are GoRails beginner-friendly content and new learning paths.[00:09:51] Chris is close to completing a new forum series for their learning path, transitioning from a blog format. The forum has topics, posts, and other features. He plans to add videos to their learning videos to their learning content in the future.[00:13:54] Collin and Chris discuss the importance of a practical approach to feature building, starting with the basics, and evolving through identifying potential issues and edge cases as they arise. [00:16:38] Kent suggests sticking to Rails defaults as much as possible and avoiding AWS for beginners. He also mentions that a lot of issues arise when users try to implement fancier features. [00:18:16] They discuss the SSL configuration complexity, Cloudflare’s role as a proxy, and its implications on the application. Chris mentions the exceptional performance of Caddy in automating the SSL certification process and migrating problems related to domain set-up. [00:25:28] Kent shares some advice for aspiring coders to be consistent, read books, watch instructional videos like GoRails, and build something, no matter how small. Chris emphasizes the importance of learning how to debug.[00:30:59] Collin expresses concern that tools like GitHub Copilot might hinder developers’ growth by offering ready-made solutions without a thorough understanding of the problem, and Chris suggests that Copilot is useful for repetitive tasks. [00:33:22] The discussion evolves around the importance of understanding the underlying code versus just getting a task done. Chris and Collin imply that this depends on the programmer’s immediate goal, whether it’s to ship the product quickly or to build something that won’t break in the future. [00:39:10] What’s been Kent’s favorite thing about coming onto the team? He tells us it’s learning Ruby and Rails while working in meaningful tasks, pairing with colleagues, addressing issues patiently and thoroughly, and he shares a rewarding experience.[00:41:26] What’s been the worst thing for Kent about joining the team? Nothing! He loves learning and working in Ruby and Rails. Panelist:Chris OliverGuest Panelists:Kent CrutchfieldCollin JilbertSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterKent Crutchfield TwitterCollin Jilbert TwitterGoRailsGitHub’s CSS Performance with Jon RohanGitHub’s CSS Performance with Jon Rohan (vimeo)CaddyGitHub Copilot

Ruby 3.3 Preview 1 & The Mystery Of The 3 Inch Round Button

May 26, 2023 0:38:27 73.82 MB Downloads: 0

On this episode of Remote Ruby, Jason, Chris, and Andrew begin by sharing their thoughts on some shows they’re watching such as “White House Plumbers,” “Curb Your Enthusiasm,” and “Seinfeld.” The conversation then shifts towards the exciting release of Ruby 3.3 Preview 1, which focuses on performance improvements for YJIT and the introduction of compiler RJIT. They dive into the challenges of implementing autosaving and error display forms using Turbo and Hotwire in Rails. Then, the conversation takes a turn towards serverless function, with Andrew sharing his experiences using Vercel, and a discussion on Hatchbox and Fly for hosting applications, and the appeal of PlanetScale for databases. Go ahead and press download now to hear more! [00:00:20] The guys discuss a few shows they’re watching.   [00:05:10] Chris announces the exciting release of Ruby 3.3 Preview 1, which introduces performance improvements for YJIT, and introduces the RJIT.  [00:07:11] Jason brings up an interview with Aaron Patterson that Justin Searls did at Ruby Kaigi 2023 where he talked about two people working on different parsers which could benefit alternative Ruby implementations.[00:09:38] A conversation came up somewhere about Laravel being a feature-rich framework, while Ruby is considered a better language.[00:10:59] Jason brings up the challenge of implementing autosaving and displaying errors in a form using Turbo and Hotwire in Rails. Chris mentions morphdom as a solution which can help with preserving focus during form updates.[00:16:23] Chris talks about autosaving features as a standard in modern web applications, and the need for built-in solutions within Rails is emphasized to simplify the implementation process.[00:22:00] Andrew shares his frustrations with implementing autosaving and validations.[00:25:55] Andrew explains what he was doing with functions in Vercel.[00:28:00] Jason brings up talking to Crunchy Data at RailsConf and the appeal of Planet Scale for databases. [00:30:40] Hatchbox and Fly for hosting applications is discussed and plans for upgrading Ubuntu versions and Hatchbox features.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterWhite House Plumbers (HBO MAX)Curb Your Enthusiasm (HBO MAX)Seinfeld (Netflix)Ruby Kaigi 2023-Aaron Patterson Interview (YouTube)morphdom-GitHubRemote Ruby Podcast-Episode 178: José Valim, creator of Elixir and former Rails core contributorVercelCrunchy DataPlanetScaleHatchboxFlyUbuntuBuild and Learn Podcast by CJ Avilla and Colin LoretzRuby Radar TwitterRuby for All Podcast

Railsconf Recap

May 19, 2023 0:49:11 94.45 MB Downloads: 0

On this episode of Remote Ruby, the guys discuss various topics relating to hosting options, web frameworks, open source projects, and give us a recap on RailsConf 2023.  They dive into the pros and cons of serverless architectures like Lambda, Jason’s experience with Roda, their interests in front-end technologies and JavaScript integration in Rails, and Andrew tells us about regex for playground. We’ll hear their thoughts on RailsConf, their favorite talks, Chris’s workshop, things that could have been better, and the importance of community contributions, transparency, and the need for clearer communication. Also, if you missed this RailsConf, they mention some other conferences coming up, so hit download to hear more![00:00:10] Chris brings up the blog post on Amazon’s AWS blog which sparks a discussion about the effectiveness of serverless architectures like Lambda. [00:02:02] The conversation shifts to Jason telling us his experience with building a microservice using Roda. Then he tells us the benefits of Roda and compared it to Sinatra, and now Andrew wants to upgrade his Sinatra app to Roda since Jason had such a positive experience.[00:05:48] Cloudflare Workers, Puppeteer, Rust and JavaScript are discussed. [00:09:06] Chris shares his thoughts on RailsConf, mentioning attendance was smaller than expected. The guys also bring up that there was no hallway track and the spread out nature of the event, which made it less conducive to casual networking and impromptu conversations. Chris enjoyed the keynotes and attending a talk by Jordan Burke on hosting with Hatchbox, Fly , and Render. [00:12:10] There’s a conversation on the need for more direction and talks on front-end technologies and JavaScript integration in Rails, and where to go if you want to learn more about these topics and contribute to the community. [00:14:26] Chris shares his takeaway from RailsConf, mentioning his interest in reading Rails commits daily to stay up to date with the community’s progress. He also talks about his favorite part of the conference was an encounter with a Lightning Talk presenter who worked on the same project he did 13 years ago.  [00:17:16] Jumpstart Pro has been updated to Rails 7.1 and we hear the changes, and the conversation shifts to regex and a tool Andrew finds useful called “iHateRegex” and “regex for playground” that helps visualize regular expressions. [00:21:19] At RailsConf, Chris gave his first ever workshop with Colin Loretz. The talk focused on Webhooks and their handling in Rails and Chris made a screencast of the workshop and integrated the code into Jumpstart Pro.[00:26:06] Chris and Andrew talk about needing more scholars and promotions for the guide program at RailsConf. Also, they liked how there was a huge emphasis on Junior developers this year.  [00:29:03] Ruby Central is talked about and how more clarity regarding how community contributions are used, and they mention the change in leadership within Ruby Central and the impact it has had on the community. [00:38:24] The guys talk about all the upcoming conferences, including RailsConf and RubyConf. and Andrew shares his experience with social anxiety during the conference.[00:43:25] Chris mentions a hearing a rumor about Rails 7.1 shipping very soon, and Andrew tells us Jason dunked on him at RailsConf in front of everybody. [00:46:49] We end with the guys expressing their gratitude to the organizers and sponsors of RailsConf and encourage juniors to attend conferences to find job opportunities. Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterRuby Conferences 2023Even Amazon can’t make sense of serverless or microservices by David Heinemeier HanssonRodaCloudflare WorkersPuppeteerRustThis Week in Railsregex for playgroundHow to Process Inbound Webhooks (RailsConf 2023)-GoRailsRuby CentralRuby Radar TwitterRuby for All Podcast

Remote Ruby RailsConf 2023 Panel

May 10, 2023 0:37:07 71.26 MB Downloads: 0

This is a special episode from RailsConf 2023 Atlanta, where we’re having a Ruby Community Podcast LIVE!  Today, we have on the panel Brittany Martin, Co-host of The Ruby on Rails Podcast, our very own Jason Charnes, and Paul Bahr, Audio Editor from Peachtree Sound, who edits over a dozen tech podcasts. We also have some great guests joining us: Aaron “tenderlove” Patterson, Irina Nazarova, Justin Searls, and Britni Alexander, who was selected by the audience to be our fourth guest. Today, our guests share some stories about who they are and what they do, give shout-outs, and answer questions from our audience.  Hit download now to hear more! [00:04:30] We start with Aaron “Tenderlove” Patterson, sharing the origin of his nickname. [00:06:05] Since Aaron has switched companies over the years, he tells how his job has changed a lot, and how he spends one hundred percent doing open source at Shopify. [00:08:05] A question from the audience comes up on what Aaron is looking most forward to working on this year. He mentions some spoilers. [00:10:38] Since Aaron has been working Ruby and Rails for so long, Brittany asks if there’s ever been a community that may have tempted him to leave. His answer is no.  [00:11:44] Aaron leaves us with a shout-out to Mushroom Hunting since he is a mycologist.  [00:12:46] Our next guest is Irina Nazarova, co-founder of Evil Martians, who tells us she had a dream that Brittany would invite her on a podcast. [00:15:44] Irina explains that consulting allows them to understand user needs, which they use to build useful tools.[00:16:44] She explains the open source products they build are a byproduct of consulting work, and they allocate resources to work on them once they show traction.[00:18:44] The focus here is on startups and if she recommends Ruby and Rails to startups.  [00:19:51] An audience question comes up for Irina on how does Evil Martians foster the environment for a great company blog? She tells us about her great editors and the blog articles that bring value to the company. [00:21:23] Irina makes a shout-out for people to support Ukraine during the war.[00:23:18] Next, we have joining us Justin Searls, co-founder of Test Double, and Britni Alexander, former employee at Mailchimp. They introduce themselves and tell us a little bit about what they do. [00:27:48] Justin discusses his favorite talk he’s given, “How to Scratch an Itch.”[00:29:14] Britni tells us her ideal job and her struggle to balance being kind and direct. [00:30:05] Justin tells us about an upcoming project called, N.E.A.T, which is focused on discussing ways to make software better that are not related to technology. [00:32:15] Britni talks about what her ideal job would be. [00:33:05] We hear about the RubyKaigi conference in Japan and Justin’s plans to attend and report on it. [00:35:30] Britni gives a shout-out to her friend Eileen for being her friend, and Justin expresses his gratitude for the opportunities and connections he’s gained through the Ruby community. Moderator:Brittany MartinPanelists:Jason CharnesPaul BahrGuests:Aaron PattersonIrina NazarovaJustin SearlsBritni AlexanderSponsor:HoneybadgerLinks:Jason Charnes TwitterBrittany Martin TwitterThe Ruby on Rails Podcast Aaron Patterson TwitterTenderlove Making ShopifyIrina Nazarova TwitterEvil MartiansJustin Searls WebsiteJustin Searls TwitterTest DoubleTest Double N.E.A.T. communityHow to Scratch an Itch-Justin Searls talk at ng-conf (YouTube)Britni Alexander LinkedInRubyKaigi 2023RubyKaigi 2023 Field Report Blue Ridge Ruby 2023

Indie Game Dev with Amir Rajan - Dragon Ruby and Ruby Motion

April 28, 2023 0:50:14 96.47 MB Downloads: 0

On this episode of Remote Ruby, Jason, Chris, and Andrew welcome guest, Amir Rajan, an indie game developer and owner/CEO of DragonRuby LLP. Today, our conversations revolve around game development using RubyMotion and DragonRuby.  We’ll hear how Amir built a successful iOS game called, A Dark Room, using RubyMotion, and his experience with RubyMotion and its expansion to target other platforms, leading to the creation of DragonRuby Game Toolkit. There’s a discussion on the challenges of targeting different platforms and the benefits of DragonRuby’s data-oriented API, scalability, and continuity of design. Amir touches on the benefits of game development, the possibility of making a living from it, and he shares some advice for indie game developers. The importance of sustainability in open source development is emphasized, and Amir tells us about some upcoming features in DragonRuby, and he explains his reasoning for charging for DragonRuby. Hit download to learn more!  [00:01:28] Amir talks about his experience using RubyMotion to build a successful iOS game called, A Dark Room, and about acquiring RubyMotion and expanding its runtime to target other platforms, which led to the creation of DragonRuby Game Toolkit. [00:06:21] When it comes to RubyMotion, Amir explains that you still need to learn some of the iOS frameworks to implement it in Ruby.[00:09:10] We hear Amir’s thought process behind acquiring RubyMotion and how taking over a runtime has been for him. He emphasizes the importance of understanding foreign function interfaces and building C extensions in Ruby to take advantage of battle-hardened C libraries. Also, there’s a great book he read that really helped him understand the machinery and language called, Ruby Under a Microscope. [00:11:52] Amir discusses the challenges of targeting different platforms with RubyMotion and the difficulties of integrating new language enhancements into the runtime. [00:14:02] We learn how DragonRuby utilizes MRuby to create a multi-level runtime that handles constructs that don’t exist on different platforms and 90komprovides a cross-platform experience for game development without any assumptions about the platform.[00:19:15] Amir dives into the problem DragonRuby solves and why someone would want to use it, besides it being awesome and that you get to build video games in Ruby.[00:21:59] Jason loves how simple DragonRuby is to get started so Amir explains the simplicity behind it versus Unity.  The continuity of design is emphasized which allows developers to start with simple solutions and expand as necessary. [00:27:30] The conversation touches on the benefits of game development and the possibility of making a living from it.

Amanda Perino - The Rails Foundation

April 21, 2023 0:36:39 70.36 MB Downloads: 0

Bet? On this episode of Remote Ruby Jason and Andrew make a bet. The timer is set for ten minutes, and if Andrew loses, Jason gets to find out his mysterious middle name. Cleophus, Herkimer, Phalange??? The question is, will Jason find out?  In the meantime, we’re very excited to welcome our special guest, Amanda Perino, who’s the Executive Director for The Rails Foundation.  Today, we’ll discuss The Rails Foundation, some initiatives that are underway, such as Rails World Conference scheduled for October 2023 in Amsterdam, some things in the works with improving documentation, and how the Rails Foundation is looking for more ways to involve Junior Developers in Ruby and Rails. Hit download to learn more! [00:02:23] Amanda tells us about her background and how she got involved with The Rails Foundation. [00:06:20] Let’s find out Amanda’s thoughts on the direction she’s going for improving documentation, and she mentions[00:14:13] The conversation shifts to Rails World, an upcoming conference for Ruby on Rails, scheduled for October 2023 in Amsterdam.  Amanda talks about the strategy work she’s doing for it right now, what kind of vibe she’s looking for at it, and how it’s going to have two tracks and a hangout space. [00:22:45] What’s next for the conference with planning for Amanda that she’s focusing on right now? She announces three big things: getting registration up and running, forming a mentorship training thing with the Junior Developer, and getting sponsors. [00:23:31] Jason mentions how awesome it is that The Rails Foundation said they want a Junior Developer to help build their site. Amanda tells us that they’re looking for ways to provide opportunities to Junior Devs, and she brings up some other initiatives that inspired her such as, Beginner Bounties, The Agency of Learning, and First Ruby Friend.[00:24:56] Amanda explains there are sponsorship opportunities outside of sponsoring The Rails Foundation, as well as opportunities sponsoring the event itself. [00:25:47] Jason wonders if there’s any plans for any type of individual sponsorships or if it will stay at the company level with The Ruby Foundation, and if there are other people or individual developers who want to support the foundation can help.[00:27:57] Amanda talks about the work being done in each of the pillars in The Rails Foundation, and she shares her ideas for the marketing initiative.[00:30:30] There’s a conversation about the supportive and friendly nature of the Ruby and Rails community.Panelists:Jason CharnesChris OliverAndrew MasonGuest:Amanda PerinoSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterAmanda Perino TwitterAmanda Perino LinkedInThe Rails FoundationReact.devLaravelRails World is coming! Beginner BountiesThe Agency of LearningFirst Ruby FriendRuby Radar TwitterRuby for All Podcast

Optimizing Ruby JIT Compilers with Takashi Kokubun

April 14, 2023 0:47:05 90.42 MB Downloads: 0

On this episode of Remote Ruby, Jason and Andrew are here, and they are thrilled to have with them, Takashi Kokubun, a Staff Developer at Shopify. He’s here to talk about JIT (just-in-time) compilers in Ruby and why we would want to use one in Ruby. We’ll hear about his work on YJIT and RJIT, the differences between YJIT and MJIT, and how the primary focus is to make YJIT the best JIT compiler for real-world Ruby apps. There’s a conversation about the use of Rust in JIT compiler development for Ruby, and Takashi shares some benefits to using Rust, as well some challenges. Also, there’s some exciting upcoming improvements in YJIT, we find out why HAML is Takashi’s preferred template language, and he tells us about Hamlit, the template engine he authored and maintains. Hit download to hear much more! [00:01:54] Since Takashi worked on the original MJIT, he tells us what a JIT compiler is and why we would want to use one in Ruby.[00:06:41] Takashi talks about working on the original MJIT (Ruby 2.6). [00:11:15] Jason wonders what kind of performance gains Takashi saw on average in Ruby 2.6 using MJIT in production. He explains that it was designed to optimize specific benchmarks such as Optcarrot but was not efficient for general purpose applications like Rails. [00:12:49] We find out why MJIT was slower on Rails which has to do with it using a sync compiler. [00:14:41] What kind of improvements were there in running Optcarrot with MJIT?[00:16:41] Takashi shares why he joined in Shopify and what he did with YJIT.[00:20:34] We hear some differences that YJIT has taken from MJIT. For example, YJIT is a JIT compiler that generates machine code directly, making it more efficient and faster than MJIT, which uses a C compiler. Also, he explains the architecture being very different between MJIT and YJIT. [00:24:52] We learn some performance benefits using YJIT.[00:26:19] Let’s listen to Takashi talk about his work on RJIT, and he touches on John Hawthorn and Aaron Patterson’s compilers, hawthjit and TenderJit. [00:31:23] Takashi talks about the primary focus to make YJIT the best JIT compiler for real world Ruby apps. [00:34:20] Takashi shares his mixed feelings with Rust, as well as the challenges. [00:39:29] There’s some exciting improvements coming up in the JIT world! [00:42:33] Andrew wonders if ERB gets any benefit to the stuff happening in YJIT.[00:43:14] HAML is Takashi’s preferred template language, and he tells us about a HAML package he authored and maintains called, Hamlit. [00:44:42] Takashi maintains many libraries, he works on YJIT at Shopify, and writes assembly code.  How does he have time for all this? [00:45:46] Find out where you can follow Takashi online.Panelists:Jason CharnesAndrew MasonGuest:Takashi KokubunSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterTakashi Kokubun TwitterTakashi Kokubun GitHubOptcarrot yjit-benchTenderJIThawthjitHamlitRuby Radar TwitterRuby for All Podcast

We're the gem exec(utives)

April 07, 2023 0:45:31 87.4 MB Downloads: 0

On today’s episode of Remote Ruby, the conversation begins with Jason, Chris and Andrew discussing their experiences with podcasting and how they started. Then, the conversation takes a shift to discussing using the latest version of RubyGems in Bundler, the addition of a new feature called, gem exec, that allows for easy running of executables from gems that may or may not be installed, and more about GemX.  Twitter’s new algorithm is mentioned, along with someone who leaked Twitter’s source code on GitHub. Chris talks about some frustrating experiences with his Rails for Beginner’s Course that he’s releasing very soon which will be free, and some plans to expand the curriculum. There’s a discussion on the challenges of teaching and learning programming, the process of recording tutorials, and Chris shares some tips and tricks for Ruby programming. Ruby is magic, so go make some magic and press download to hear much more! [00:03:18] The guys catch up on what’s been happening with work, and Andrew tells us he tried the new gem exec stuff in RubyGems, he explains the new feature, and there’s a discussion about the advantages of the new feature and how it works, which ends with a bit of confusion. [00:10:03] Andrew brings up an example and mentions a gem called GemX that people are using.[00:12:09] We hear about a gem Andrew wrote that was printed out a like business card with cool texts in the terminal and how he was inspired by someone in the Node community.[00:14:04] Jason brings up Twitter releasing “The algorithm,” and how someone leaked Twitter’s source code on GitHub. [00:17:52] In Chris’s world, he tells us how he’s been re-recording his Rails for Beginner’s Course and his frustrating experience with trying to use Digital Ocean Spaces for image uploading, as well as frustrations with CORS configuration and policy instructions.[00:28:41] Chris and Andrew discuss the challenges of teaching and learning programming, specifically Ruby on Rails. [00:32:15] Chris mentions the upcoming release of a new Rails for Beginner’s Course, which will include six hours of Ruby content, and plans to expand the curriculum to include more topics like HTML, CSS, and JavaScript.[00:33:35] Andrew and Chris discuss the process of recording tutorials, which can be time consuming and difficult to balance between explaining concepts and providing practical examples. [00:37:06] Listen here for some tips and tricks from Chris for Ruby programming, including using simple delegator and modules on individual instances of a class. He also talks about a blog post on Thoughtbot and about The Gilded Rose Code Kata. [00:42:28] Jason chimes in saying he’s just been writing maintenance task and talks about his struggles with abstractions.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterGemX GoRails[Experimental] Add gem exec command to run executables from gems that may or may not be installed #6309Evaluating Alternative Decorator Implementations in Ruby (Dan Croak-Thoughtbot)Refactoring: The Gilded Rose-Rubies in the RoughRuby Radar TwitterRuby for All Podcast

Jason and Andrew Brain Dump | RailsConf, Shoes, DragonRuby, ChatGPT4, Python, mRuby

March 31, 2023 0:39:01 74.92 MB Downloads: 0

Welcome to Remote Ruby and thanks for joining us!  It’s Jason and Andrew today and do they have so much to talk about. RailsConf 2023 is coming up, Andrew booked his flight and lodging early, Jason announces he’s doing a podcast with Brittany while they’re there, and the guys discuss how their ADHD is so different from each other.  Then they discuss npx, the benefits of using it, and how it can be useful in Ruby.  Jason and Andrew talk about building user interfaces in Ruby, creating games with DragonRuby, learning Rust and Python for hardware projects, and using OpenAI API for Ai projects. We’ll also hear about their programming backgrounds, not liking math, regrets about not taking a statistics class seriously, and experiences with other college classes. Press download now to hear more!  [00:04:19] The guys are excited to go to RailsConf but Jason’s feeling socially anxious since he had surgery. [00:06:03] Andrew explains what Hashnode is since Jason has no idea what it is.[00:06:28] In the wonderful world of Ruby, Andrew’s been scripting lately since he wanted to have fun, and if you don’t know what npx is, he explains what it is. Jason and Andrew also discuss using npx with Tailwind and esbuild, [00:11:09] Jason brings up using standards VS Code extension and mentions how surprisingly fast it is.[00:13:35] Jason mentions Nick Schwaderer taking on building a new Shoes project, which was a GUI graphic user interface library for Ruby, built by, why the lucky stiff. It looks like their using WebView, and if anyone can explain it, please Tweet Andrew on Twitter or message him on discord. [00:15:17] The guys talk about building user interfaces in Ruby, creating games with DragonRuby, and a Tweet by Amir Rajan about DragonRuby.[00:20:35] Jason tells us about trying to learn Rust and Python for hardware projects, and Andrew tells us about a widget he built using Rubyist.[00:22:28] There’s a discussion on using OpenAI API, Andrew has an interest in creating a profitable business with web3 technology and AI, Jason mentions “Ask Rails,” an Open AI powered chat to help you with all things Ruby on Rails.[00:25:42] The conversation shifts to Jason and Andrew’s programming backgrounds and their interest in using Ruby for hardware projects. [00:29:34] Have you heard of PicoRuby? Also, if you know mRuby, please reach out to Jason or Andrew because they need to talk to you.[00:31:50] Andrew was asked to be a Guide at RailsConf, saw the email too late, and he’s not doing it because of his commitment issues.[00:34:37] Jason and Andrew discuss their rabbit holes. One is about a speech professor, the other is being back on Khan Academy filling gaps in math knowledge, and regrets about not taking statistics class seriously and other classes.   Panelists:Jason CharnesAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterRailsConf 2023HashnodeAmir Rajan TwitterDragonRubyAsk Railsnpx-GitHubSearls After Dark #1-ChatJPN (YouTube)ShoesRubyistOpenAI APIPicoRuby-GitHubRuby Radar TwitterRuby for All Podcast

Pagy and Beginner Bounties

March 17, 2023 0:52:03 99.93 MB Downloads: 0

On this episode of Remote Ruby, if you’ve never heard of The Cannonball Run, Chris explains what it involves, Andrew is down for it of course, and Jason tells us Vin Diesel recorded a song and Andrew celebrated his birthday!  In the Ruby world,  we’ll find out why the guys are all fans of Pagy, and we’ll hear about a fun hack day project that the talented guys from GoRails built called, Beginner Bounties.  Basically, if you’re a Junior Developer and you need to build your resume and want to stand out, you can use this platform to list small engineering projects for other people and get paid for it. Also, the guys discuss why shipping is such a great skill to have, finding the right job you enjoy, avoiding burnout, the importance of taking breaks, balancing things out, and there’s some valuable advice given for all the Junior Developers out there that you don’t want to miss.  Hit download now to hear more! [00:04:50] At the end of last year, Andrew was working with Turbo and infinite scrolling Pagination, we find out what happened when the author of Pagy reached out to him. Chris and Andres give a huge shout-out to the author for doing top notch maintenance. [00:10:18] If you build Pagination on the frontend with React, Jason explains that Pagy’s really good because they have a metadata option you can turn on that has the full set of variables and properties to build pagination on the front end. Jason did it with Inertia.js and there’s a great episode to check out with the creator of it.  [00:13:39] The new Pagy docs look incredible, we hear about Microsoft .NET, and Chris tells us about using someone’s browser called a kiosk browser.[00:18:36] Chris announces at GoRails this week, they decided to have a fun hack day and built a site called Beginner Bounties. Chris had this idea for years, and it’s geared towards Junior Developers. Go check it out! [00:22:00] Andrew plays devil’s advocate and asks a question using a real example regarding a project, needing to upgrade a gem to take advantage of a new configuration system, and rather than figuring out how to do it, he could pay someone to figure it out faster. Why is this wrong? [00:26:38] We hear a great story about Colin and how he got the experience he needed by helping Andrew, which led to him finally getting a job. Rails developers are the top paid developers right now, but Chris tells us there’s not a lot of Junior job openings right now but hopes companies will start hiring more juniors since it will be hard to fight for the senior positions. [00:30:25] There is important advice shared here regarding shipping, and why it’s a great skill to have.  [00:31:22] Chris tells us about a PR that someone made to the prefixed_ids gem.[00:33:58] Andrew and Chris talk about bounties for Juniors to gain experience in coding.  [00:43:23] The valuable points shared here is don’t wait for an opportunity to come to you. Start doing something! The people who get stuff done are the ones who will get hired.  The worst thing you can do is fail, but you can always try, try again! Also, people hire their friends, and they can help when it comes to finding a job, and when you work with friends you can accomplish more, you can learn more, and have more fun. [00:49:18] Andrew and Chris discuss enjoying what you do for a living, balancing things out, avoiding burnout, and the importance of taking breaks.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterThe Cannonball RunRemote Ruby Podcast-Episode 66-Joined by Jonathan Reinink, Creator of Inertia.jsPagy.NETBeginner BountiesPrefixed_ids IMAGINARY kiosk-browserRuby Radar TwitterRuby for All Podcast

Ruby Language Server with Vinicius Stock

March 10, 2023 0:51:29 98.86 MB Downloads: 0

On this episode of Remote Ruby, Chris came down with what he thinks was food poisoning this week, Jason brings up Ghost Kitchens which seem to be a thing these days, and Chris applied to be a Guide at RailsConf 2023. Also, Jason and Chris are excited to have a guest joining them because they’ve always talked about how they wished for better tooling for day-to-day Ruby development, so they brought on Vini Stock, who’s a Senior Developer at Shopify. Shopify has created the Ruby Language Server (LSP) to make it easier to implement features such as code definition and auto formatting for Ruby across different editors. We’re so lucky to have Vini with us to discuss the Ruby LSP and some other really cool things happening in the Ruby tooling space. We hope you enjoy this episode! Hit the download button now.[00:06:19] Vini shares his journey of programming and working with the Ruby on Rails Infrastructure team.[00:08:27] Now that Vini is on the Ruby Infrastructure team, we find out what kind of projects he was first working on. [00:12:04] How long has the Ruby Experience team and the LSP project been a thing?[00:12:44] Vini explains why the Ruby LSP was created. [00:15:25] Let’s find out some goals they want to achieve with the LSP right now.[00:17:37] We hear some of the differences between the work Vini’s doing on Ruby LSP and something like Solargraph.[00:19:01] Listen here as Vini details how Go To Definition works, which is a more complex feature than others.[00:24:34] Jason asks Vini what language do you write a language server in? [00:27:26] Chris wonders what challenges Vini runs into and what’s the next step of the problem of building the language server. Where does he go from there? [00:31:38] Vini shares his aha moment when he built a feature and used it, and he was thinking, “Build with joy!” [00:32:46] We hear if Vini’s using RuboCop or Syntax tree for formatting, which leads him into telling us about future plans of adding a plugin system to be able to format with standard and with Ruby format. [00:35:56] Vini shares other ideas he has for the future of the Ruby LSP.[00:37:11] Outside of the LSP, we hear about some other projects Shopify is working on with contributing to the new Ruby debugger, Chris expresses his appreciation for all the new tooling the team at Shopify is working on, and Jason expresses his love for the Rust tooling.[00:42:18] Have you seen Gary Bernhardt’s talk on building an editor? [00:46:27] If you want to try Ruby LSP, Vini tells us where to go to set up VS Code.[00:50:29] There’s a great blog post Vini wrote, a video with his talk from RailsConf 2022, and find out where you can follow him online.Panelists:Jason CharnesChris OliverGuest:Vinicius (Vini) StockSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterVinicius Stock TwitterVinicius Stock GitHubVinicius Stock WebsiteRuby LSP (VS Code extension)Ruby LSP-ShopifyImproving the Developer Experience with the Ruby LSP by Vinicius StockRubyConf 2022- Improving the development experience with language servers by Vinicius Stock (YouTube)RailConf 2023A Whole New World-A talk by Gary Bernhardt from Strange Loop 2012Ruby Radar TwitterRuby for All Podcast

BeagleBones, mRuby, and Devise 4.9 with Hotwire support!

March 03, 2023 0:38:38 74.18 MB Downloads: 0

On this episode of Remote Ruby, it’s another “Five Minutes of Nothing About Our Show” as the guys discuss Police Academy and the comedian Bobcat Goldthwait, a picture of Chris’s son dressed in Adidas gear, and Jason’s dilemma finding Adidas gear.  Now back to our regularly scheduled podcast topics, as Jason decided he needed a new hobby, so he bought a BeagleBone Black. We’ll hear how he used Elixir Nerves, Circuits, and some Ruby programming languages he’s been tinkering with. The guys discuss trying mruby, DragonRuby, Pi-hole, and Zeus.  Also, after two years, devise 4.9.0 was released thanks to Carlos, and you can find out all the cool new features here, as well as the new authentication stuff in Rails 7.1. Download this episode now to find out more! [00:02:26] Jason shares a journey he’s been on since his knee surgery and deciding he needed a hobby, so he ordered a BeagleBone Black, which is like a Raspberry Pi. [00:05:17] We hear how Jason used Elixir Nerves, which is a way to build Elixir apps on microcomputers and controllers, and he used a GPIO library called Circuits.[00:07:56] We hear about some Ruby programming languages that Jason has been tinkering with such as Ruby 2D which is built on top of another library from the same author for C called Simple 2D, Chris mentions a library that he used for air quality sensor on the Raspberry Pi.[00:09:16] Jason and Andrew talk about trying mruby and DragonRuby.[00:12:17] Andrew wonders if anyone has tried Pi-hole.[00:14:07] Chris talks about Big Clive, a hilarious guy on YouTube that you should check out if you want to get into soldering and circuits. [00:18:06] In case you don’t know, mruby is really cool and if Jason can find a use case for it, he’ll use it, and Matz is still actively working on it. The guys discuss the details between mruby and CRuby.[00:21:48] Jason’s been looking at Rust and going through the tutorial has been a little scary to him, but they have a build system called Cargo and he tells us what it does. The guys bring up an old episode with Terence Lee where they talked about mruby.[00:23:49] Have you heard of Zeus, not the Greek God but a Rails preloader?  [00:24:59] Chris shares how fiddling with stuff and making things got all of them into programming, and how he’s still working on his project with wiring up LED lights in his home theater. [00:26:25] A BIG shout out to Carlos for getting devise 4.9.0 released with backward compatibility and Turbo and Hotwire support after two years of not working properly with Rails 7.[00:30:42] Find out about all the new authentication stuff in Rails 7.1.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterRuby Radar TwitterRuby for All PodcastBeagleBone BlackNervesCircuits.GPIORuby 2DSimple 2DmrubyDragonRubyPi-holeBigclivedotcom-YouTubemrubyCargoRemote Ruby Podcast-Episode 27: Joined by Terence LeeZeusdevise 4.9.0Rails 7.1 Release Notes

Utilizing AWS Lambda and Rails to Build Applications with Ken Collins

February 24, 2023 1:00:08 86.6 MB Downloads: 0

On this episode of Remote Ruby, we have an awesome guest joining us. Today, we have Ken Collins, who’s a Principal Engineer and Cloud Architect at Custom Ink, an active member in the Ruby community for over fifteen years, a Microsoft open source contributor, PC Gamer, and an AWS Serverless Hero. We have so much to discuss today, as Ken fills us in on Lamby, Custom Ink, how Lambda evolved, a gem called Lambdakiq, and if you’re looking for cost optimization, why Lambda is the best compute service out there. We’ll also learn how CloudFormation can help developers, how CloudWatch Events is used, and we’ll hear about the different database options Amazon has such as Aurora Serverless, DynamoDB, and RDS. If you’ve never used Lambda, it’s a good time to try it out. Andrew realized he’s in the perfect place to try it since he recently built a proxy one. Download this episode to learn much more! [00:01:52] Ken tells us about himself and his background[00:04:47] Custom Ink makes some great products, and we’ll learn how Lamby came to be, the stuff they build, the cool tech behind it, and the services, such as AWS Lambda.[00:08:16] How did Lambda evolve?[00:09:17] Ken details what the OCI format is, and how Lambda works compared to deploying to a traditional server. We hear about Lambda releasing Function URLs, a free API gateway, and what it does.[00:12:16] We hear the whole process from end-to-end, starting from a web request, what happens, how it gets to Rails, Dynos are running, the database gets affected, and how those containers can be used for other things like an event driven architectures.[00:16:03] Chris asks Ken how Kubernetes and Lambda compare. Also, we hear how background jobs and cron jobs fit in, and a gem that Ken wrote called, Lambdakiq.[00:20:30] How does Ken manage connections being made and the events being sent to the right place? Also, Chris wonders if CloudFormation is something you should learn as one of the starting points or you should later for it to be more useful, and Ken tells us about the AWS Cloud Development Kit and what it does.[00:24:10] Amazon has many different database options and Ken explains that you can use any database you want, wherever you want.[00:25:39] Ken explains the differences between Aurora Serverless, DynamoDB, and RDS.   [00:30:23] We’re going back to talking about Lambda now and Ken tells us about their website, a documentation website where they cover things, and a Quick Start Guide on how you can deploy a new Rails APP on Rails 3.2 to Lambda in 5 minutes.[00:33:02] Chris mentions how Taylor Otwell modified Laravel to run on Lambda, and Vapor is their tool for deploying to Lambda.[00:36:25] Are there any gotchas? Chris heard people were talking about Rails being slow to boot and issues with connecting to your Lambda to a VPC was slow. Ken tells us the VPC has been solved very well.[00:39:31] Ken and Chris chat about the hardest things are learning and change management, like setting up CI for the first time can be challenging, Heroku is amazing but has its limits, and using CloudWatch Logs which is a change for people. Also, Ken shares a hotspot with Lambda, and he tells us about Lambda Punch and New Relic. [00:42:47] Ken tells us to use CloudWatch Events for setting up Cronjobs that run on a schedule.[00:44:51] Chris wonders if there are concerns or ways you have to change things for assets, and Ken explains what they do with turning on the magic environment variable, but if you need something else, it goes into the CI/CD Pipeline creation.[00:48:30] Andrew is going to try Lambda now, and we hear Ken’s thoughts on how different development is from production when you use Lambda. Find out why he loves Microsoft’s Development Containers Specification, and Chris mentions DHH’s MRSK project and what it’s going to do.[00:56:06] Find out where to follow Ken, if you’re interested in Custom Ink, check them out, and please try out Lambda because he could use some contributors to help write the guides.Panelists:Jason CharnesChris OliverAndrew MasonGuest:Ken CollinsSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterKen Collins TwitterKen Collins GitHubKen Collins ( InkCustom Ink ProductsLambdakiqAmazon Aurora ServerlessAmazon DynamoDBAmazon RDSLambyFull Stack Radio Podcast-Episode 120-Taylor Otwell-Serverless Laravel with VaporLambda PunchNew Relic-GitHubAmazon CloudWatch EventsDevelopment ContainersRemote Ruby Podcast-Episode 165: GitHub Codespaces & Docker with Benjamin WoodMRSK: Deploy Web apps anywhereRuby Radar TwitterRuby for All Podcast