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 333: RubyMotion and the Aesthetic of Ruby with Amir Rajan
Panel:Charles Max WoodDave KimuraSpecial Guest: Amir RajanIn this episode, the Ruby Rouges speak with Amir Rajan. Amir is a game developer and is the most successful Ruby game developer. Amir is also the owner/CEO of RubyMotion. RubyMotion allows you to write Ruby for the Mac platform. Amir will be speaking at Ruby Dev Summit this fall.Amir talks about being apart of not web part of Ruby and the innovation including mobile. The panel discusses building application for mobile in Ruby Motion and the OS platform. The panel also discusses the easy of building with RubyMotion and how the language has come along way since Mac Ruby and others. Also, how to get started and all installations required to build with RubyMotion.In particular, we dive pretty deep on: Ruby - not on the web Mobile Ruby Google and Android don’t provide the same thing for app building. Mac Ruby Language Translation compiler LLVM bit code - Low-level virtual machine How RubyMotion works with LLVM Complier backends LLVM Kaleidoscope Understand one level below Ruby Ruby Source code Learning RubyMotion - Red Potion, AF Motion, Bubble Wrap Masonry Understanding Apple’s documentation Ruby Motion does Android Why pick RubyMotion? and much much more. Links: We are the designated survivors/digging into Ruby: Heredoc pull request LLVM Kaleidoscope RubyMotion Twich - Game Development with Ruby Amir Rajan @amirranjan Picks:Amir Nier: Automata Idle Thumbs Podcast Literate Gamer Podcast (favorite show) DaveRerunChuck Ruby Gems FriendlyID Ice_Cube Recurring_Select Special Guest: Amir Rajan.
RR 332: Exploring Connections Between Your Apps and the Web with Justin Weiss
Panel:Charles Max WoodEric BerrySpecial Guest: Justin WeissIn this episode, the Ruby Rouges speak with Justin Weiss. Justin is a software developer for aha.io, blogs at justinweiss.com, and is also the book author of Practicing Rails: Learn Rails without being overwhelmed.Justin gives a preview of his presentation at Ruby Dev Summit , which is about exploring connections between your apps and the web. Ruby Rogues and Justin dive deep into questions about testing apps with an array of tools to see how that information is relevant in exploring connectivity and working parts of apps.In particular, we dive pretty deep on: Apps becoming of the web instead of running on the web Breaking into the connection between your apps or native client and your mode APIs Micro Services Finding the pain points Where to start to begin open visibility Deploy and looking at logs - Gems and Libraries. Tooling - API requests manually - Postman app , PAW Automation or one-off tools When something breaks, what kind of information is relevant Figuring out what part of the apps are working well and reproducing problems Error Logs Sandi Metz Principle Authentication and Authorization Characterizing and much much more. Links: Aha.io Justin Weiss Practicing Rails: Learn Rails without being overwhelmed justinweiss.com Postman app PAW Advance Rest Client Charles proxy @JustinWeiss Picks:Eric Pry - Rails, Remote, Stack Explore, Doc, Nav CodeSponsor.io JustinBooks - The 3 Book Problem Chuck Ruby Dev Summit Angular Bundle ThriveCart.com Chuck@DevChat.tv Special Guest: Justin Weiss.
RR 331: 30 days to Elixir then Crystal and back again to Ruby with Fabio Akita
Panel:Charles Max WoodDave KimuraEric BerryBrian HoganSpecial Guest: Fabio AkitaThe Ruby Rouges speak with Fabio Akita, a return guess. Fabio is a blogger at AkitaOnRails.com and is an organizer and speaker at Ruby Dev. Conf. Brazil. Fabio mentions have minor open source projects. Fabio talks revolve around “How do you as a Ruby Developer, dive into new languages,” such as Crystal and Elixir. Fabio will be speaking on the upcoming Ruby Dev Summit.In particular, we dive pretty deep on: Should we just all just go to Elixir? Problems with choosing and staying with one language? Ruby is a ZPE language or 0.8 languages. Ruby on Rail was never a full solution. Elixir is not a difficult language, object-oriented, and functional. Elixir is linked an operating system. What drove you to Elixir? When new languages come up to replace something you already have… Crystal is a getting a stable API in a few months. LLVM - Low-Level Virtual Machine, or compiler framework Copy and pasting your Ruby code into the Crystal compiler Dropbox client running on python Using Rabbit MQ and much more. Links: • @AkitaOnRails•@RubyconfBR•Codeminer42facebook.com/akitaonrailsPicks:Eric•imazing Dave•Apple Watch Chuck•Just Keep Going…Brian•Plug Rails Cookies Sessions StoreDryFabio Kamel Discord Special Guest: Fabio Akita.
RR 330: Functions vs Methods with Devon Estes
Panel:Charles Max WoodDave KimuraEric BerrySpecial Guest: Devon EstesThe Ruby Rouges speak with Devon Estes, a return guess and Ruby developer who currently lives in Berlin, Germany. The topic of discussion is about Function vs. Methods, and talk about blocks and its functions. Also, some further digging into the behaviors of functions and designs. Devon explains that this topic will be of discussion at Ruby Dev Conf.Devon dives into the object orientation and the interactions between functions, editing or changing functions. The Ruby Rogues ask questions about, service functions, subsections of applications, application logic, and understanding the parts.In particular, we dive pretty deep on: Functions vs. Methods Blocks When do you want to go for a function? Editing Functions. Service Objects solving problems Methods and Function or classes? Placing functions in apps 30,000 lines Single responsibly principle Different classes of users Example or great uses of functions Keeping thing for being hard to manage among users Value Objects and phone numbers, and functional methods. Object orientation and functional programming Merging Elixer and Ruby? and much much more. Links: DryRB Education Super Highway @devonestes devonestes.com devonestes.com/fir Picks:Eric Pipe Envy Super Free Cheese Cake - Keto friendly DaveAmazon Free TimeChuck Ruby Dev Summit 2ketodudes Keto Clarity Devon Nav to Tetris Season 4 Bojack Horseman Zoos Special Guest: Devon Estes.
RR 329: Learning Machine Learning with Marc-André Cournoyer
Panel:Charles DaveEric Special Guest: Marc-André CournoyerRuby Rouges speaks with Marc-André Cournoyer, whose most notable works were the Thin Web Server, Tiny RB Ruby implementation, and a book called “Create your own Programming Language,” response for the creation of Coffee Script. Also he has done some with with Rack 2 and create some of the initial Rack Adapters. The discussion covered in this episode are about learning machine learning. How do you learn it in Ruby? The basics of machine learning and the best practices to become more competent in machine learning. Also some diving into hardware, training, for getting the job done. In particular, we dive pretty deep on: How to Learn Machine Learning? Important hardware components: GPU, RAM, etc. Training Algorithms that are doing once impossible things Building a machine learning system for different kind of tasks or applications Decide on a side project and completing a side project Links: Marc-André Cournoyer The Great Code Club CoreLogic twitter.com/macournoyer Thin Web Server TinyRB Create your own Programming Language http://refactormycode.com http://talkerapp.com CodedInc Picks:Eric Code SponsorsDave MX Master 2S Uninterruptible power supply Chuck Ruby Dev Summit Home Depot Mini-Excavators Data Skeptic Podcast Marc Rebuilding a Ruby Web Server from Scratch Arxiv-Sanity Special Guest: Marc-André Cournoyer.
RR 329: Learning Machine Learning with Marc-André Cournoyer
Panel:Charles DaveEric Special Guest: Marc-André CournoyerRuby Rogues speaks with Marc-André Cournoyer, whose most notable works were the Thin Web Server, Tiny RB Ruby implementation, and a book called “Create your own Programming Language,” responsible for the creation of Coffee Script. Also, he has done some with Rack 2 and creates some of the initial Rack Adapters. The discussion covered in this episode are about learning machine learning. How do you learn it in Ruby? The basics of machine learning and the best practices to become more competent in machine learning. Also some diving into hardware, training, for getting the job done. In particular, we dive pretty deep on: How to Learn Machine Learning? Important hardware components: GPU, RAM, etc. Training Algorithms that are doing once impossible things Building a machine learning system for different kind of tasks or applications Decide on a side project and completing a side project Links: Marc-André Cournoyer The Great Code Club CoreLogic twitter.com/macournoyer Thin Web Server TinyRB Create your own Programming Language http://refactormycode.com http://talkerapp.com CodedInc Picks:Eric Code SponsorsDave MX Master 2S Uninterruptible power supply Chuck Ruby Dev Summit Home Depot Mini-Excavators Data Skeptic Podcast Marc Rebuilding a Ruby Web Server from Scratch Arxiv-Sanity Special Guest: Marc-André Cournoyer.
RR 328: Rails Security Beyond the Defaults with Matias Korhonen
Tweet this EpisodeMatias Korhonen has been writing Rails apps professionally at Kisko Labs, a Rails-focused software consultancy in Finland, for almost a decade. In his spare time he works on too many side projects (including Piranhas.co), a book price comparison site, and TLS.care (an SSL certificate monitoring service). He also somehow manages to find time to homebrew beer.The Rogues talk to Matias about securing your Rails applications. Rails comes with a lot of security features built in, but you can still leave yourself open to exploitation if you're not careful. Most of these problems occur in the portion of the app your write as opposed to the parts of the app that Rails handles for you. We go over several tools and techniques for making sure your application, access, and data are all secure.In particular, we dive pretty deep on: Tools that you can use to scan for vulnerabilities or add more security checks to your applications Authentication and authorization mistakes Securely managing data and much, much more... Links: secureheaders brakeman Code Climate CloudFlare zxcvbn Troy Hunt article on pwned passwords Devise Security Extension pundit Drifting Ruby episode on Complex Strong Parameters gemnasium bundler-audit OWASP Zed Attack Proxy Project rack-attack Picks:Brian: Regex 101 Give and Take by Adam Grant Eric:Indie HackersDave:Sumo LogicChuck: Ready Player One Comic-Con trailer breakdown Mattermost Ruby Rogues Parley Ruby Dev Summit (FREE) Matias: Webpacker 3.0 ActiveStorage Heroku Special Guest: Matias Korhonen.
RR 327: Hack Your Workday to Maximize Learning with Allison McMillan
Tweet this EpisodeAllison is a developer in the Washington DC area. She is a non-profit executive turned developer. She helps organize the RubyConf and RailsConf Scholar Program. She organizes a local meetup call Silver Spring Ruby. She works at Collective Idea.The Rogues talk to Allison about being a mom in coding and work-life balance. They also talk about transitioning from non-profits to coding. This episode goes into depth on: Prioritizing your family and still having a great career Goal setting, focus, and growth Team collaboration Contributing to open source and much, much more... Links: Delayed Job Allison's Blog Baby Driven Development talk Rails Girls Ruby Dev Summit RSpec Minitest RailsCasts Interactor Gem Leah Silber from Tilde tweet Tilde article on Baby at Work Mother Coders RailsBridge Allison on Twitter Picks:Eric: Gallup Strengths Test Metabase Allison: Sticky Note Game by TableXI WriteSpeakCode Ruby Jewel Crystal DISC Assessment DaveRails GuidesSpecial Guest: Allison McMillan.
RR 326: Chatbots with Jamie Wright
In this episode of the Ruby Rogues podcast Dave Kimura, Eric Berry, and Charles Max Wood discuss chatbots with Jamie Wright. Jamie will be speaking at Ruby Dev Summit in October.[01:25] Jamie Wright introductionJamie is a professional nerd and independent contractor. He's been coding for 20 years mostly in Ruby. He's starting to get into Elixir.One of his first projects was a text adventure game, which got him started with conversational UI's. He saw Hubot on Campfire. He started tweaking that.He made a timetracking bot that used Freshbooks and Harvest.Then Slack came out and he created Tatsu.[05:00] Tatsu featuresYou can schedule it and it'll ask automated questions.He's working on having it integrate with github, Harvest, Google Calendar, etc.If there's a blocker, you should be able to create private conversations with the people who are blocked and add that to the standup.When you sign up it adds a video link into your slack. Eric thinks this is pretty clever.In Slack, the default action people should take when a bot is installed should be to DM the person who installed it.[08:50] What it takes to write a bot and the challenges involvedWriting bots is "fun as hell."Chatbots suck. We have the opportunity to improve an entire piece of the industry.Many bots are command based bots. You say something and it responds.Conversational UI's are really hard because they don't have any context or shared understanding of the world.[12:18] Chatbot libraries - Getting StartedEvery large company is working on one.There are also lots of natural language processing services that you can use as well.Before you start, you need to know your use case.Where will your users be? What services do you want to provide?At work? Probably slack.Among friends? FacebookNode has botkit. It's the most popular chatbot platform in the world.Start with botkit, use the examples, then come back to Ruby.Dave brings up building a chatbot for Slack that connected to VersionOne.Data retrieval bots are another great place to start.From there, you start answering the question of where things go.[18:51] The panel's experience with chatbotsTatsu has been around for about 2 years and has existed pre-Slack.Eric uses a Slackbot to get information about users who cancel or decline messages.Chuck has done automatic posting to Slack with Zapier.Chuck also mentions serverless with AWS Lambda.Chatbots are a lot like webapps. They're text in, text out and process things in very similar ways.Dave also brings up SMS bots as well with Twilio.Jamie has thought about creating a web based standup bot for when Slack is down. Slack is a single point of failure for your bot if that's where it lives.Slack gives you a lot of UI elements that you don't get in SMS.[24:51] Do you wish that Slack were more like IRCFrom an end-user perspective, no. But Jamie does wish they'd revisit threading replies and separating conversations in the same channel.It only took a handful of developers to build Slack.[27:20] What gems do you use in Ruby?slack-ruby-client by dblockslack-ruby-bot by dblockeventmachine[29:30] Does Slack push to an endpoint? or do you poll Slack?You can call an api endpoint on Slack that gives you a websocket endpoint.The events API sends webhook events to your server. It's easier to program against, but it can be slower. It may also be restricted on certain API's[30:55] Github Fantasy League Based on a Peepcode video with Aaron Patterson. You got a score based on your activity in Github.Jamie recorded videos for a talk at Codemash.It never actually became a thing, but it was a fun idea.Jamie got into Ruby by going to a Ruby Koans talk by Jim Weirich.Jamie's links github.com/jwright twitter.com/jwright brilliantfantastic.com This is what we put into the chat room after the Dr. Who reference... PicksEricRollbarDaveMattermostChuckZoho CRMJamieDigitSpecial Guest: Jamie Wright.
RR 325: Date Night with Ruby with Ruberto Paulo
Tweet this EpisodeRR 325 Date Night with Ruby with Ruberto PauloIn this episode, panelists Dave Kimura, Eric Berry, and Charles Max Wood discuss ongoing learning and keeping your passion for programming alive with Ruberto Paulo.[01:16] Ruberto Paulo introduction and discussion on the South African and worldwide Ruby sceneRubyist from Cape Town, South Africa. Works for a fintech company in Cape Town. He's an organizer of RubyFuza and Ruby DCamp in South Africa.The Ruby scene in South Africa is growing as is fintech. His company's platform was build by Platform45 and is now maintained by his employer.Developers are also finding work in the wider world from the Cape Town area.Is Cape Town a big Rails area? or is there a big focus on other frameworks? It's a mix, but mostly Rails.Most of the people who live in Kenya spend 1/3 of their income charging their phones. M-pesa is their alternative to banks because they can't afford to have bank accounts. Every business in Africa has to have some kind of technology tie-in because of this.A lot of the developers in Ruby are Polyglots. They're people who have experimented with several languages in the past. Ruby is probably the highest paid language in South Africa. Dave Thomas spoke at RubyHACK conference that Elixir is the future. He's using Elixir for pretty much everything now. Elixir presents a viable option to move from for Rubyists.Several years ago, Ruby was hot. Now it's mature. Many corporations have invested in Ruby, so they're not going to adopt another stack.Most frameworks can solve most problems, so people only move when you're in the minority case where you need the capabilities of the new language.A lot of people stick around because they love the language and the community as well.What does Ruby give us that we want to take with us into the future?[19:10] Date Night with RubyRuberto is speaking at Ruby Dev Summit about Date Night with Ruby.More show notes in progress Special Guest: Ruberto Paulo.
RR 324: Developer Horror Stories
RR 324: Developer Horror StoriesThe panel for this episode of Ruby Rogues is Dave Kimura, Eric Berry, and Charles Max Well. They are telling developer horror stories this week. Tune in to listen to their stories![00:01:40] Eric’s Story Eric tells a story that happened today. He was working on a report on live data at work. While doing this, he sent texts to hundreds of people that shouldn’t be getting them. The moral of the story is that everyone makes mistakes, even seasoned developers.[00:02:58] How could that have been avoided? Eric has a fail-safe that has to override with an environment variable so that it won’t truncate the tables. Once that happens, no messages will be sent. He works at a company, which is a B to C texting platform that allows customer retention through mass, etc. He commented out stuff, not realizing that it would start sending messages. He needed live data to generate reports so he did not truncate the data. His advice is not to comment out code until you know why you are doing so.Dave says that same thing can also happen with an email service. Instead of commenting out code, make sure they are set up to a mail server or mail dev to where it actually never sends out to the real world but stays in a send box environment. Amazon SES has a way to do this where things stay internally.[00:05:10] Dave’s StoryAround seven years ago Dave needed to store some images. He did not want to use a storage on the local computer because he would have multiple web servers and he did not want to use external storage because he was “lazy.” So he stored the images in the database. It worked for years until one day he saw that the table was 30 GB, which was much larger than it should have been. He had to extract and rewrite because any test to undo it would be substantial. It would be a long running process because 30 GB is a lot of data.In hindsight, Dave’s advice is that you don’t have to prematurely optimize but you also don’t have to make bad decisions. Do not store globs of binary data in your database. If it can be stored as a jpeg, do that.[00:08:04] Charles’ StoryCharles’ story focuses on time zones. He was working on test first development. He wrote tests for a feature and his coworker checked them. The database was running in UTC and doing checks in Mountain Time, so the checks would fail from 6pm until midnight. The CI server would show that tests were not passing for a chunk of the day.It was a simple fix. He learned that you can write a test that passes but may be overlooking something simple that may change when in a different place or a different time.[00:11:05] ErrorsErrors are hard to track down. The hardest ones to find are the ones that only happen occasionally. The worst ones are those that are critical errors that only happen occasionally. Because they only happen sometimes, it is hard to know how to fix them.[00:19:13] Using a Technology Too SoonEric used a technology too soon, which was Rails. Nobody could take over once he left the company. He had to go back to the company and rebuild it in PHP so that others could use it. The lesson from this mistake is that when you chose a technology you have to choose one that supports the buzz factor. Everyone has a responsibility to the people they are working for to add value. If you leave them with a maintenance nightmare you are not helping, you are hurting. Make sure you are locking things down.[00:22:35] Gems and Poll RequestsDave watches Gems to see what and how often they are updating. He checks to see if his poll request was accepted and reverts back to the original gem. He calls it “free maintenance from other people.” He doesn’t think you should deviate from it too much. An option is to use a proxy as well.[00:27:41] Have you ever had to make patches in your Rails app knowing that those patches were coming in a future release?Eric has had to in the past. His mentor had to patch Rails, apply it, but every time it ran it said, “if you upgrade rails, upgrade me.” It was a reminder to make sure everyone stays in sync.[00:29:30] MigrationDave and Charles have both had problems with migration. Take snapshots of database before you use migrations. The moral of story is if you’re going to migrate data, make sure you back up your database before you change the data. And don’t do data modifications in your migrations. Also set up a replica of your database. There is no excuse except for laziness or inexperience.[00:32:10] Materialized views. Eric used to work for social media company that had a lot of data coming in from various forms of social media. Helped build sub products that handled intake of data. Decided to use materialized views. It is a view that self updates as data changes in the database. In other words, it creates a fake table and can simplify the application side of things.It got a little messy and they had no idea what was updating things when. Because of this, they had to convert the materialized views to stored procedures. The materialized views killed the database because it triggered things when it shouldn’t be.[00:37:23] Caching Caching is a big problem with development. There are complex cache keys built around different queries and combinations of objects. There is a value with using caches but there is a caution with not using caches too early. A lot of problems have resulted from caching wrong results. The moral is to measure and make sure that you are working on the right problems. Sometimes premature optimization does not matter. Sometimes caching is just not needed and messes programs up rather than helping them.[00:40:34] How do you populate data with unrealistic data?It depends on how big the application is, but larger ones generate ten to twenty thousand records. For these, Dave uses Active Record Import. He used the Faker Gem to create fakes names. Without using Active Record Import it would take ten to fifteen minutes to 50,000 but instead it took two minutes with using it, saving a lot of time.PicksDave: Gem in a box Active Record Import Eric: udemy – Stephen Grider Code Sponsor Charles: Audible Meditation app Find something that helps you re-center Ruby Dev Summit
RR 323: Queuing and Amazon SQS with Kinsey Ann Durham
RR 323: Queuing and Amazon SQS with Kinsey Ann DurhamThis episode of Ruby Rogues features panelists Charles Max Wood, Dave Kimura, and Eric Berry. Special guest Kinsey Ann Durham joins to talk about queuing and Amazon SQS. Tune in to learn more![00:01:19] Kinsey Ann DurhamKinsey writes code for a company called Go Spot Check. She is always a lead mentor in a San Francisco based company called Bloc.[00:02:50] Background on Amazon SQSGo Spot Check is using Amazon SQS on a smaller scale. Kinsey thinks it is sasy to use. She recommends using something like Amazon SQS or even RabbitMQ. It has provided the company with the ability to explore different architecture patterns and tools.[00:04:50] Can you talk a little about your company and what led to using Amazon SQS?Go Spot Check is a start up in Denver. They focus on recording and data collection for big companies that need to know what is happening in retail, grocery stores, and bars. The focus is on alcohol and retail brands. The company analyzes the data collected that previously held no insight. Go Spot Check is currently moving into a computer vision aspect. Kinsey works off a separate service off of main aspect of Go Spot Check.[00:06:46] What does your stack look like? Is it built off Ruby?Yes, it is a Rails API only. The computer vision is done in Python.[00:08:45] Are you feeding the images through the queue? How does the queuing fit in?Started using Amazon SQS because they wanted to have a more decoupled way of developing. This allowed them to decide the contract between the two services and decide what they wanted it to look like up front. Kinsey describes that it is easy to create fake messages for testing with Amazon SQS. Image data is sent back and forth through the queue. The company does a lot of planograms. Information is taken from that data and posted onto a queue from the machine learning side of things. On the Rail side of things, the data can be picked up in API and sent back to the main app.[00:10:50] Does it accept binary data in the queue? It does not send actual images. All comparison data that has been processed is sent from the machine learning aspect side of things. An article has been published that shows that people do send images in the queue.[00:11:35] Do you use SQS in parallel with SNS (Simple Notification Service)?Kinsey says that they haven’t used SNS. This is because there hasn’t been a need. They are using it to post messages to communicate between different services.[00:12:40] What point would you need to consider a SQS over a Sidekick?Kinsey didn’t look into using Sidekick; she was excited to use SQS. She wanted to try it out and see if it was easy to use. Thought it would be more complex than it has been. She enjoys the free features of Amazon such as message visibility and timeout, which is handled by them. It can be customized and two different queues can be used.[00:16:15] How do you write the workers for an SQS queue?Kinsey has a plain Ruby object in the API that she can reuse with any queue. There are three queues in the company.[00:19:45] Are there any other uses for queues and SQS?Kinsey hasn’t come across any personally but she is sure there are some.[00:23:40] What if you’re someone who is new? Where would you recommend they get started?Suggest getting started with SQS Amazon, SQS documentation. Can get up to speed quickly. Amazon SQS is easy to get up and running. Kinsey is tailoring her Ruby Dev Summit talk to people who are new.[00:30:35] How do you go about mentoring?Kinsey loves mentoring. Developers have side projects or freelance work, but Kinsey likes to mentor because she feels like she makes a difference while continuing to learn. An important part of mentorship is giving support. This support level to students’ means not only offering students help with technical skills. Her goal is to build a well-rounded developer: someone who will be a great team member and people will want to work with in the future. This involves helping students build soft skills such as networking, interviewing skills, and helping them build confidence.[00:33:52] How would people get involved with mentorship?Kinsey is involved with an organization called Bloc - they are always hiring mentors. She shares that people can always get involved in their local community. Schools are looking for mentors. People at local meet ups and Rails Bridge are also both good ways to volunteer. Kinsey learned through mentors - she didn’t go to school to learn code. Mentors changed her life and are important to her, which is why she now mentors.[00:36:30] Advice For Women Kinsey’s advice for women who want to work in the technology world is to go for it. She urges women to get as many people and resources on their side as possible, including great developers who are willing to mentor. She emphasizes the importance of confidence and says to be ready for comments on gender. She believes that - while there are definitely still diversity issues with socioeconomic background, sexual orientation, race, gender, etc. it is getting better – women are more welcome in the technology field than they have previously been.There are technology organizations that are doing well and have no problems with welcoming women into the workplace. People in the field need to be open to having discussions about gender inequality. Open dialogue with team members is the key to solving problems. Some people have grown up not realizing the way they think is wrong. They don’t connect that what they say or think is offensive because it is all they know; it is unconscious to them. This is the type of person that is hard to change.PicksEric: Open Collective Open Collective – Women Who Work Dave:Health insuranceCharles: Profit First Secrets of the Millionaire Mind Kinsey: Guide program applications for mentors at RubyConf Release It Links for Kinsey Twitter Instagram GitHub Special Guest: Kinsey Ann Durham.
RR 322 Finding a Great Job
RR 322: Finding a Great JobThis episode of Ruby Rogues the panel is Dave Kimura and Charles Max Wood. They discuss Finding a Good Developer Job. Tune in to learn more about this topic![00:02:08] Internal Clock With JobsDave believes that within the developer community, people have a one to two year internal clock. This clock tells them it is “time to find another job.” It confuses him that people go through jobs in a short amount of time. He explains that this is largely due to the on boarding time: it takes a while for developers to go through this process.Charles has switched jobs more frequently than Dave. He explains that his internal clock has been set of either by necessity or simply it being time to move. His reasons for switching jobs have been due to him not being happy and there being a substantial pay raise that he could not afford to turn down. He believes employers need to do more to keep people engaged because it is a loss to get somebody up to speed then have them leave.[00:08:30] Developers Want ChallengesPeople he knows that are in the development career are there for challenges. A lot of them he speaks with state they get to where they aren’t being challenged. Their employer won’t invest in helping them get to the next level, whether it is paying for trainings or conferences. People he has interviewed said that when they are starting to switch, it is for growth.[00:11:12] Are you encouraged to or allowed to figure out how to do things better at work?Dave said that because he’s over the project, he is able to do so. He tells others he works with to do the same. He doesn’t look at it as wasted time, but as time that is spent getting better. This time will be made up when the information learned is used later on with different projects with the company.[00:13:40] Self-care Some companies are short sighted and want employees to spend the least amount of time possible doing things. Most successful teams are developers that want to feel like part of the team. You need developers to believe in the mission and the team. If your manager is telling you to work 80 hours a week something is wrong. It is healthy for a company to recognize limitations.The humane development principle that Ernie Miller that says developers are humans, not machines. Often managers forget developers are humans. They need to be treated as people. Companies have to give them downtime. They have to take care of themselves.[00:20:00] What do you tell people to do if they feel burnt out?First look and assess the situation. Is the issue a self induced issue? Or is the employer forced this issue onto you? Misunderstandings can occur. Communicate with your boss to discuss the issue. Sometimes, it’s a simple that you like your job and push it too far.Learning boundaries are important. There needs to be a physical separation between work and relaxation area. There also needs to be boundaries around your time. Schedule work time as well as family time. Don’t break your own boundaries!Planning is important. What can you fit into the schedule? There is almost a guarantee that you will work too much if you don’t schedule. Backlog items that you want to accomplish. Meet with your team about it. Once you have a plan, don’t exceed what you plan. This will show you whether you are working too much or not enough.[00:28:40] MentorsIt is important to find a mentor. Learning is your responsibility. It only benefits you and your career. The company’s benefit is a side affect of your effort. Your company may not have the resources to help you. Where you will find a mentor is worth considering when you take a job. There are many resources for finding good mentors. railsmentor.org is one for the Ruby community.Dave doesn’t have a mentor but highly advises getting one. He believes that you can be your own mentor if you have a self-teaching capability. It is just a harder way to go. Charles has a mentor. Business people will pay for coaching. He suggests eventualmillionaire.com to check out a business coach he recommends.[00:36:54] How to Get Hired Dave suggests forgetting about job titles when looking for jobs because they are meaningless. Instead, focus on the skill set that the company is looking for. If you expect a company to continue your learning, you’ll always have a junior mentality: you will be a “professional junior.” Development is a career that requires constant education because there will always be new stuff. Companies want someone useful to them who will turn a profit. They want to use you. Sell yourself to them.Companies have a problem and they want you to solve it. You have to show them that you’re the person who can solve the problem in a way that makes it work for them. There is a wish list of technical skills companies have, but that doesn’t mean you have to check every box. They want the right person to solve the problem efficiently and quickly, and be a pleasant person.There is a list of questions that Dave prepares to ask in interviews that he tailors towards each candidate. He doesn’t want to make candidates feel attacked. If they are hired for the company, they’ll have a bad taste in their mouth. He also doesn’t like tests given. Instead, he wants to know how a candidate thinks. He makes sure to ask, “What is your process in coming to an answer?”[00:49:50] Third-party RecruitersThey do not pay attention to resumes they see. They use different tactics to try to suck you in – one is to insult you, while another is to try to hire another person through you. Dave has a policy to not talk to third-party recruiters. They do not know the client they are working for.[00:54:45] NetworkingGet to know other people in the field. People will help you get jobs. Can hunt job boards but it is not as effective as having contacts. Know someone who works at the company doing the thing that you want to do. A personal referral goes a long way. When someone goes to bat for you, it’s because they believe you will do a good job. Companies will not take that lightly.[00:58:50] ResumesTake the time to do your resume right. It is the first impression you make on an employer. That first opinion they have about you will be hard to change. A resume should be grammatically correct, relevant, and updated. Customize and personalize your resume to the company that you are sending it to.PicksDave:Fidget Spinner Charles The Miracle Morning by Hal Elrod The Daily Lasagna YouTube 2 Keto Dudes www.ruled.me Living La Vida Low Carb Show with Jimmy Moore Ketoclarity Links Eventual Millionaire https://www.railsmentors.org/ getacoderjob.com
RR 321: Visual Studio Code Ruby Plugin with Penn Lv
RR 321: Visual Studio Code Ruby Plugin with Penn LvThis episode of Ruby Rogues features panelists Dave Kimura, Brian Hogan, and Charles Max Wood. Two special guests join the panel today: Eric Barry and Penn Lv. Tune in and learn more about Visual Studio Code’s Ruby Plug-in! [00:01:55] Introduction to Eric Barry Eric turned over Teach Me To Code to Charles, which helped build relationships for Charles that built the Ruby Rogues podcast. Eric is a software engineer who has been working in programming since 1998. He works for Skipio and has been a Ruby on Rails developer for nine years. [00:03:15] Introduction to Penn Lv Penn is a software engineer for Redim. He works on the Ruby extension for Visual Studio Code. This extension deals with enhanced Ruby language support. [4:00] What goes into building a language plug-in/language setup for VS code, what do you have to do in order to make that work in the electron set-up? Usually when you try to build an extension for VS code it is just a NodeJS application. It has nothing to do with electrons; it is just a Node application. Everything is run in a separate process. Just about how to build an extension for VS code.The first category is formatters, or colorization. For both of those you can write plain JavaScript. There are two categories that are difficult: first is de-buggers. The VS code is a set of common UI for de-bugging. Which is language diagnostic. Write an extension and hook up language debug.The second is a language server to write language experience. VS code has a concept called language server protocol. Need to write an extension that follows protocol and tells the VS code about semantic information about your program. [00:06:25] – In order to get some of the nice features for the language you have a Ruby process running somewhere that you talk to in order to do some of the syntax checking? Yes, have to run that in a stand-alone process. It analyzes Ruby, but it can’t run that in Node JS process. [00:06:52] So what’s the goal? What makes the VS code team write a Ruby program? Ruby for VS Code was his ticket to the VS code team. Penn wrote for himself. It is his hobby project. [00:07:32] How many contributors are on the project? Who works with you? It is a community project. There are probably in between 50 to 100 contributors. [00:08:33] What’s your process of knowing what to allow and what not to allow to modify it? How do you know what PRS to accept and how do you stay on top of it? It is challenging to know what to allow. Penn claims to still not be a professional Rubyist. The first step is to run test cases. His way of reviewing code is by downloading the code. He looks into every piece of the code, learns it, and plays around it. If it works, he adds it. [00:10:23] How main PRs do you regularly get and how much time does it take to keep that maintained? Every weekend he goes through everything. He will have maybe five to six VS code extensions and check them thoroughly. [00:13:30] Indentation when blogging in VS code Two months ago he finished a feature dealing with auto indentation. The option for this is called editor.autoindent. Indentation gets adjusted automatically while you type. [00:18:10] Recommendations for plug-ins Charles recommends Emacs key bindings and Penn recommends the VS code extension Vim. [00:21:49] Do you do most of your work in TypeScript? Yes. At the very beginning they were using JavaScript. They were one of the first adopters of TypeScript and are now all TypeScript. [00:22:50] How much of a commitment would it be to add TypeScript to an existing project? The setup of TypeScript is not easy. If you are using a NodeJS application and they have TypeScript or typing support there is no specific thing that needs to be done to make it happen. In VS code there is a feature called automatic type acquisition. If creating a new project that uses an express package, which already has a typing file for it. VS code provides you with auto complete. Also don’t need to worry about typescript file if you are not going to create a library. Can do TypeScript gradually. [00:26:16] What do you see that’s left to do in the Ruby plug-in? A language server is the missing part. [00:27:35] Is that currently being done in other editors? No one does that right now. RubyMine has the best support currently. [00:28:13] Does your work translate to Atom as well? Atom has basic support for Ruby but it is just about colorization, indentation, and formatters. Everyone is waiting for a language server for Ruby. [00:31:38] If you have multiple languages or modes that you have to handle within the same file how do you set up VS code to handle that? Users cannot customize that. A language support extension has to handle that. [00:34:50] What is the font that you use in VS code? Source code pro [00:35:08] If people want to give this a try, what are the best ways to do that? First go to code.visualstudio.com. Then, install VS code. At the welcome page instructions will show you how to use the command palate, give you an interactive playground, and show the best place to get familiar with everything. The welcome page also has links: one is VS tips and tricks, which are shared by the community. There is a Youtube channel, which shows how to make VS Code productive. [00:36:32] If someone is working on an esoteric language and there is no support in there language in VS code yet. Where would you recommend they start? There is a docs session on the website that tells you how to write extensions for VS Code. Penn thinks if you build a debugger it is most difficult. There needs to be an understanding of real debuggers. Look at some of existing debugger, understand how they read source code, get an understanding from there. [00:38:22] Was there an extension that you used as a model while writing the Ruby extension for VS code that you recommend people look at? First looked at Python. Then switched to PHP, which is pretty similar to the Ruby extension. The protocol is very similar. That’s how he learned to make the Ruby extension. [00:40:58] If people want to contribute, is there a GitHub they can go look at? The organization name is Ruby IDE and GitHub name is vscode-ruby. There is a Wiki Page on how to setup and explain concepts behind everything. [00:41:22] How long did it take you to get the plug-in till it was publicly useable? A couple of hours. He was at his girlfriend’s parent’s house bored, got a job with VS code because of it. [00:44:40] What’s your biggest sales pitch for VS code? Compared to some of competitors, VS code is fast. The best part of VS code is that it is open source. Everything is on GitHub, including issues and user feedback. Users know every issue that is being worked out. All information is open to users. Can file an issue and they will respond immediately. [00:47:00] Are there plug-ins for other languages? There is an elm plug-in.Picks Dave:Azure’s cognitive services Brian:OmniFocus Eric: Hugo Netlify Code Sponsor Charles: Building stairs Upwork Penn: The Text Editor Sam by Rob Pike Ruby Weekly Special Guest: Penn Lv.
RR 320 Shrine and File Uploads with Janko Mahronic
RR 320: Shrine and File Uploads with Janko MahronicJerome Hardaway, Dave Kimura, and Charles Max Wood discuss Shrine with Janko Mahronic on this episode of Ruby Rogues. Janko is a Ruby developer. He is the creator of Shrine, which handles file uploads. Shrine tries to solve existing problems and gives many ways to upload files. It tries to accommodate and provide every option for whichever types of file you may be uploading. Tune in to find out more about Shrine!Questions [00:03:56] What does Shrine do that CarrierWave doesn’t do? One of the main reasons Shrine was created was to support background jobs. CarrierWave was missing support for background jobs. There is a CarrierWave extension for uploading in back-end but it doesn’t work reliably. It doesn’t delete files in the background and is missing the ability to have stable basic grounding capability. Shrine was created because of this reason. [00:06:06] Does Shrine have good support for Rails? Yes, you can hook up any backgrounding library. It has a designed interface in the way that Shrine can realize data for you. Shrine can call the background library directly. It can be an active job or custom background library. Inside the job, call Shine again to load all objects back up to finish the job. [00:07:40] Does Shrine work across multiple file types or is it geared towards images? Shrine works for any types of files. It is called the Ruby method. It can be implemented in any way you want. It has a functional style. You give the original file for the input and then move it to the processed files on the outputs. The processing can be anything: as long as you produce a file object on the output, you can call whatever you want to call, even an external service. [00:09:04] What’s the biggest file that you’ve tested Shrine with? Have you run into any kind of memory leaks? In Shrine nothing is done through memory, everything is done via streaming. When you’re streaming you don’t lose anything. It works for both small and large files. [00:11:48] Explain what goes into building a file upload system. What are the concerns? The framework handles the way the file is uploaded for you. Once the file is uploaded it’s stored into a temporary file. A gem handles most of the heavy work. Shrine makes a wrap around it. A lot of work goes into deciding which file attraction process needs to go in which order. It is important that you don’t upload in a data based transaction (?) 14:41 if processing lasts for longer time, whole time. There is a lot of time and decisions about what to do when. [00:15:10] Do you have any blog posts about a migration plan? Do you have a good way to switch to Shrine? Yes, Janko wrote migration guides. They include what codes you need to have to transition to Shrine. None of them involve re-uploading file because files are already there, they just need to be assigned ids. Then records can be updated with the file in a way that Shrine would be able to find them, just need to do record updates. [00:17:29] What do you think active storage will do to the future of Shrine? Janko may not be the best person to ask. He created Shrine for people who are not using Rails. It is difficult to tell at this point what active storage will do for the future of Shrine. [00:19:50] How is the community adoption implementation? What is your process with that? There is a Google group for people to ask questions. The setup doesn’t look that much different. Adoption is more that Janko tries to write a lot of blog post emphasizing some of the things that are better in Shrine. Most of the adoption started from the Go Rails screencast. When the author started to release videos. People were able to see what it looks like from start to finish. Go Rails is a great way to bring a library closer to a wide population. [00:23:26] What stack are you using? The preferred web framework is Roda and Sequel. [00:25:00] Is there anything out there that you feel that these uploading that you adding to Shrine? He feels like there is integration missing, which would be nice to have but he started working on he already knew what he wanted Shrine to support up front. Most of those features were added in the first and second release of Shrine. People won’t find on demand processing in Shrine because he decided not to add that. [00:29:54] Security Points of Shrine Uploads have to be authenticated. If a file is uploaded to a URL another person should not be able to review that file. If you want to authenticate files, you need to serve the files from your Rail set. [00:32:55] How much time have you spent doing Shrine? Two years. Picks: Dave: Wallabag: https://wallabag.org/en Charles: Stair Points Skil Saw: http://www.amazon.com/dp/B0731Q92BY/?tag=chamaxwoo-20 Janko: Event Machine: http://www.rubyeventmachine.com/ Links: GitHub: https://github.com/janko-m Twitter: https://twitter.com/jankomarohnic?lang=en Special Guest: Janko Mahronic.