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 390: Creating a Heroku-Like Deployment Solution with Docker with Pedro Cavalheiro
Panel: Dave Kimura Eric Berry Charles Max Wood Nate Hopkins Special Guest: Pedro Cavalheiro In this episode of Ruby Rogues, the panelists talk with Pedro Cavalheiro who is from Brazil, but currently resides in Hamburg, Germany where he works at Xing. He is a software engineer, an actor, and has been working with the web since 2010. He has worked mostly with Ruby and PHP languages, and since 2015 has worked full-time with Ruby on Rails. The panelists and Pedro talk about his background and his article. Check it out!Show Topics:0:00 – Advertisement: Sentry.io 1:04 – Chuck: Hi! Panel is Eric, Dave, Nate, myself – and our special guest is Pedro Cavalheiro! Please introduce yourself! Is that Spanish or Portuguese?Chuck: P.S. – The DevRev is my new show and check it!1:57 – Guest: My name means gentleman! Here at your service.2:05 – Guest: I am a developer and worked with web technologies for 10 years. I do some DevOps stuff and working with Ruby. I just moved to Hamburg, Germany with the same company.3:02 – Chuck: How do you make that decision?3:07 – Guest: There is no magical answer. It depends on your needs and what time you have? At the time when I wrote that article I worked with a small startup company. For us, we used Heroku at the time.4:09 – Guest: Current company is bigger and 500 developers. We have different ops teams and they have their own infrastructure and tools. They have more money, time, and people. For what they need it needs to be more scalable. It depends on the company and the requirements and your resources.5:00 – Panel: I need to preface first: I love hosted solutions, but at the same time there is a hidden cost set that people don’t think about.6:16 – Guest: If you compare your own infrastructure vs. cloud platform they will think that it is cheaper than having a hosted solution.7:28 – Chuck: Yeah, that’s a discussion that I find that I have with myself and with my own company. It makes a ton of sense to have some system setup and it’s something that I am managing.8:05 – Panelists talks about AWS and AMI. 9:06 – Guest.9:21 – Panel: Can you talk about the article you wrote? Why did you write it? Give us some context into the article and where are we now?9:48 – Guest talks in-detail about his article and where he was in life when he wrote this article! 14:10 – Panel: How much time did you invest into that?14:16 – Guest: Less than a week; maybe 3-4 days for the whole process. Writing the article took about 2 days.14:50 – Chuck talks about Docker, Azure, Dokku among other things. Question: Where do you look at all of these different things, and how do evaluate?16:02 – Guest: I am a huge Heroku fan, and I would suggest people to use it. It’s brilliant. The company I work today it could be expensive to use b/c it’s a heavy load application and it won’t work. As for me (personal projects) I will play around these different tools.19:02 – Panel: It’s easy to get up and running of Heroku. I think it’s similar to Kubernetes. 20:00 – Guest: I agree with that.The guest shares a story that relates to this topic. 21:45 – Panel: If you are using self-hosted...put some security on your application. Even if it’s just a demo you are protecting your environment.22:17 – Chuck: Where do you guys come down on making these types of decisions?22:30 – Panel: I see it as an investment; especially if your development team is small. Eventually, it will scale but in the early days of a project it is a legit choice to use Heroku or Beanstalk. CodeFund is still on Heroku. Right now it’s solving those problems for us.23:45 – Chuck: Look at everything that we are all running. What do you guys recommend?24:19 – Panel: I use S3, elastic search, among other things.25:56 – Guest: I have a similar story. I had some friends who were spending more than $2,000 a month on Heroku. We tried to find how to reduce the amount of money. We removed the application from the Heroku and put it inside a local machine (probably $800 computer) that runs 24/7 and the only expenses were Internet ($50.00 / month) and 1 SSD ($100) and 1 micro-server through Amazon. Now it works and we were spending over 200x the amount that we needed to. In this example it wasn’t a critical system. In this case self-host was far better and cheaper, so it really depends on your case.28:08 – Panel: Yeah, sometimes the old school and simple solutions are it.28:26 – Chuck: I have a virtual machine/servers on Digital Ocean, and I cap deploy. I will login in every-now-and-then, but that’s it.28:50 – Panel adds in his comments to this topic. 29:17 – Guest: Sometimes these old school solutions tend to be slower, but it depends on what you need for that situation.29:50 – Chuck: David Brady called that his “Time to Twitter.”30:04 – Fresh Books! 31:10 – Chuck: Can you talk about your discussion about this, please?31:23 – Guest: I wrote this article, and it was translated into a few different languages. In the talk that I gave, I talked about my article. It’s funny b/c I wasn’t expecting all of this attention.33:33 – Guest: I was nervous when I gave the talk so I don’t think it was that good. (Laughs.)33:50 – Guest: We are human beings and we are always making mistakes, which is okay.36:55 – Chuck: Yeah I run into that, too. Especially when running the podcast.37:14 – Guest: That’s apart of the game right? We like to play with new technologies and if it weren’t for experimenting with new stuff our whole industry wouldn’t be as fun. We have the freedom to test, and we get to break tings and not get fired. That’s apart of our jobs.37:51 – Panel: That’s a good point. A service like beanstalk or Heroku it’s easy to push your app out into the world. But when you dig in deeper, I think that knowledge really starts to seep in and you get to be a better developer.38:27 – Chuck comments on this topic. 39:12 – Panel: To Pedro’s point...39:42 – Guest: Yes, we work as a frontend or backend developer or a system administrator, but we need to understand the infrastructure. I want to know and when I know more then my work as a backend developer will improve and communicate with the system. That people know how to use Ruby on Rails and they get used to it but forget about database behind that, and...where you can write your own inquires. They think it’s not their job, but it IS their job.41:17 – Chuck: To take that step one step further.Chuck talks about performance issues, codes, and more.41:48 – Chuck: I want to try out Dokku!42:00 – Guest comments.43:53 – Chuck: Let’s do Picks!44:00 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Ruby on Rails Angular React React Native Docker Kubernetes Heroku Beanstalk CodeFund Amazon S3 GitHub: Kubernetes IMDB – Pedro C. FB: RR – DevChat TV RR 382 Episode Pedro’s blog article: “Creating a Heroku-Like Deployment Solution with Docker” Comic of Code Compiling GitHub: Dokku/Dokku Digital Ocean: Dokku Digital Ocean: Cloud Hosting App Developers Love Pedro’s Website Pedro’s Twitter Pedro’s Crunchbase Pedro’s GitHub Sponsors: Sentry CacheFly Fresh Books Picks:Dave Legos Rubix’s Cube Eric Digital Ocean @samantha_tse @jna_sh @Zaltsman NateAlone - History Channel Charles MF CEO - Podcast Extreme Ownership - Book Drip TheDevRev.com Pedro Di.FM Shortcut Foo Special Guest: Pedro Cavalheiro.
RR 389: Developer Environment with the Panelists
Panel: David Kimura Eric Berry In this episode of Ruby Rogues, the panelists talk amongst themselves about their favorite software, equipment, and apps. Both Eric and David thoroughly share their preferred picks within these categories, and they explain how and why they use the specified item. Check out today’s episode to hear more!Show Topics:0:00 – Advertisement: Sentry.io 1:03 – David: Welcome! Today, Chuck is not feeling well. I am David and today we have Eric Berry on our panel today. It is just the two of us today. I want to talk about our development environment. What is your setup like? Do you have an office space and your hardware?1:58 – Eric: I Have a room in my basement that has everything that I need. I do work from home. There is my guitar, my geek toys and more. For my hardware I am using 2017 MacBook Pro (16 GB of ram). The 13-inch is convenient, but I upgraded b/c I do a lot of traveling. I do pull the iPad out and use DUET. You no longer have to use a cord. I have a monitor that is 30-inches and it’s gorgeous. That is my hardware setup. I am not a mechanical keyboard guy, and I stick with the Apple super flat keyboard. I do use Bestand – it’s a holster for the keyboard and the track pad. What do you have?4:35 – David: I have a Frankenstein setup. My needs change, over time, and when that changes my hardware changes. Back in the day I did not have a Mac and I used a Windows machine. I used to be a gamer, but then met my wife and then stopped b/c she didn’t like for me to waste time. My setup is more proper. I have a baseline iMac Pro b/c there was a great deal of $1,000 off. The other option was an iMac. I like the desktop b/c that’s where I do work – at home. It was a $4,000 investment. I am on my computer ALL the time it was worth it to me. I got the wall-mount for me, and I have more monitors wall-mounted, too.8:00 – David: That is my monitor and computer setup. I have an eco-rhythmic keyboard b/c of childhood injuries. I have a really old Microsoft keyboard from 2005 something. It was cheap but I like the style of it. For my mouse I have a Logitech mouse. I love the feel of this thing. It has a side scroll left and right, and up and down. Especially when I am looking at code. It helps with my video editing, too. My mouse is my favorite to-date. I don’t have too much plugged into the Mac. I have a GoDrive, which has everything on it – my whole life’s work is on there. If there is ever an emergency I know to grab that. Back things up in case of an emergency would be my tips to you all.11:40 – Eric: I have struggled with backing things up actually. The problem that I have is that I am constantly moving my laptop. I have this guilt and fear of doing it wrong.12:33 – David: I have this work laptop – I don’t back that up every day. David gives Eric his suggestions in regards to backing files up. David mentions Back Blaze. 14:05 – Eric: That makes sense. I live in the Apple eco-system. I have my phone, watch, 40 iPads, laptop – everything backs up to the Cloud. The date we are recording this is 10/30/18. Apple just announced a new upgrade. I feel like this could compete with an actual laptop computer.Eric asks David a question.15:35 – David: ...My main problem with that is that you might already have a developmental machine. It’s a stationary computer then it’s not feasible to take on the go. I do have an iPad Pro and I will take that on the go. I can login to my home network.BLINK – I used on my iPad Pro. David continues to talk about his setup.19:00 – Eric: I kind of agree with you. I have seen it used quite a bit. My brother does everything online for his job. The pros are that if you are training, and his company is configured that way. The pros is that you can code from anywhere on anyone’s computer. I am glad that it DOES exist. It’s not Cloud9 but someone does offer...20:20 – David: I think going to a solo screen does hurt my productivity – working on the iPad vs. working on the computer. I could get faster and faster but only to a certain degree.If you have the resources – then I don’t think it’s sustainable. However, if you don’t have the resources it’s better than nothing. At least you are coding and that’s important.22:15 – Eric: I think of the audience we cater to with Ruby Rogues. I wonder if our listeners are strapped for cash or if they do have the resources to get the job done?22:48 – David: If you don’t have a lot of money, you don’t have to buy a Mac. If Cloud hosting isn’t your thing there are different options. You have DOCKER, and use Windows as your main editor, and the WSL.I wanted to do a test – I bout a laptop for $500-$700 and you can get away with doing what you need to do. Learning how to program and code with what you have is great!25:00 – Advertisement – Fresh Books! 26:05 – Eric: Let’s talk about the software developer environment. Nate Hopkins isn’t on today, but you can’t change his mind – I am VEM all the way. I think Cuck is EMAX. 26:43 – Eric: What do you do?26:45 – David: I use VS code. David talks about the benefits of using VS code. 27:37 – Eric: Yes, 100%. I met the lead engineer behind VS code. They just made a new announcement.I have been using VS code for quite a while now. The integrated terminal and other features are awesome. Pulling me out of Sublime Text was a really, really hard thing for me.29:28 – David: Sublime text, yes, but I got tired of the 40-year long beta, and the lack of expanding it, too. VS code has won my heart over.30:53 – Eric: My guess is that they are going to leave it alone. I am sure they will connect the 2 teams. Think of how much work has gone into ATOM. That would be a hard pill to swallow.31:20 – David: At the end of the day, though, it is a company. You don’t need 2 different editors when they do the same thing.31:40 – Eric: I would have to disagree with you. Maybe they won’t merge the 2 but they just become different between ATOM (React and React Native) and...32:22 – David: Why would a company cancel something only have 1 season? (Clears throat...Fox!)32:58 – Eric: I open very large files with Sublime. Sublime handles this very easily. This goes back to: why am I opening up very large files?33:31 – David: It’s a log file don’t lie.33:40 – David: What browser do you use? Safari?34:03 – Eric: Safari is nice for non-developers. Safari is lightweight and very fast. I have been a browser whore. I go from bedroom to bedroom from Opera to Firefox to Chrome. I fall into the Chrome field though. I have a problem with Chrome, though, and that it knows me too well. Google can sell my data and they do.37:14 – David: With BRAVE, weren’t they doing something with the block chain and bit coin to reward you for browsing?37:38 – Eric: Yeah I think that’s being run by...38:03 – David: I still use CHROME b/c I like the extensions. It’s important to know why you are picking a certain browser. When you are talking about development you need to know who your target audience is. What kind of apps do you use?39:54 – Eric: It’s interesting to see how much traffic the Android Browser gets. You want to switch over to other parts? For my tech software...I use Polymail.io for email. I use THINGS to keep me on-track, I use SLACK, BRAVE BROSWER, iTerm3 and MERT. I use FANTASTICO (calendar), and I use BEAR (for my note taking). What about you?41:21 – David: I use iTerm3, too. I’m on 3 different Slack channels. I have been using DISCORD. Other tools that I use are SPECTACLE (extension) among others. I try to keep it slim and simple, though. Another one is EasyRez (free download) and you can adjust the screen resolution on your desktop monitors. It’s important to target my audience better. I do like PARALLELS, too.44:24 – David continues: Screenflow, Apple Motion, and Adobe After Effects CC. 45:04 – Eric: I use 1 PASSWORD and BETA BASE.46:04 – David: Have you heard of Last Pass? 46:15 – Eric: Oh sure! I have been using though 1 Password and I guess there some loyalty there.46:54 – David asks Eric a question about 1 Password about pricing. 47:12 – Eric: I want to pay with money than with something else.47:23 – David: It’s owned by LogMeIn, and they have tons of experience with security.48:00 – Eric: I am going to put an article here that compares all these different apps so you can see the similarities and differences side-by-side.48:40 – David: Anything else? Banking passwords?48:54 – Eric: Nah, I am excited to see where we are. I like Mojave for the desktop but I don’t like it for the constant number of resets that I’ve had to do. I love what I do.49:34 – David: Yeah, I agree. I haven’t experienced any major setbacks, yet.49:55 – Picks!50:03 – Eric: I think this whole episode has been PICKS!50:15 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular React React Native Komodo Bestand Duet Atom.io EasyRez Polymail.io Docker Adobe After Effects CC LogMeIn Brave 1 Password iTerm3 VS CODE iPad Pro Last Pass GoDrive Mojave EMAX Back Blaze Discord Sublime Text AWS Cloud9 StatCounter GitHub: Mert Bear App Process.st Pi-Hole Sponsors: Sentry Cache Fly Fresh Books Picks:Dave ProxMox Pi-Hole EricOpen Source Funders
RR 388: RuboCop and Code Linting with Bozhidar Batsov
Panel: Dave Kimura Charles (Chuck) Max Wood Nate Hopkins Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Bozhidar Batsov who is the VP of Engineering at Toptal, and an Emacs fanatic. The panel and the guest talk about RubCop, Emacs, and Komodo, among other topics! Check out today’s episode for more details.Show Topics:0:00 – Sentry.IO – Advertisement! 1:07 – Chuck lists the panelists and the special guest. 1:37 – Chuck: Why are you famous?1:41 – Guest gives his background. 2:13 – Guest: I am passionate about Emacs.2:55 – Chuck.2:58 – Panel: I have on a few projects. Do you know RUFO? It’s a bit more opinionated than RuboCop.3:25 – Guest: I am familiar with RUFO and their approach is similar to JavaScript called Pretty or something like that.4:45 – Guest:4:49 – Panel: Can you tell us what RuboCop is and why is it important?5:00 – Guest:There are a few main things that RuboCop is:1.) Placement for Ruby minor...2.) Lint tool3.) Automatic checker for all the best practices outlined in the community4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code7:30 – Panel: What are the origins of the project? Where you interested in the performance and security aspects of it?7:49 – Guest.The guest talks about RuboCop in detail.10:59 – Panel: It’s important to remember that these are just guidelines and they are NOT set in stone. Using single or double quotes. As long as the project is consistent and using decent practices then I am okay with the code. I will disable the...in RuboCop. Today with high-resolution monitors it’s one of those things that are an annoyance to me. It’s just my opinion, though.12:07 – Guest: Why disable it and not...?13:36 – Panel: You could use VS code instead of Emacs! I am just kidding.13:51 – Guest: I hope you are kidding!13:56 – Chuck: I cannot live without this code...14:06 – Guest.14:26 – Panel: I was an early adapter from the beginning and it was hella slow. I tried it from sublime text and I got annoyed so I eventually switched to VS code. Once I got over the brand name, I really like it as my main editor.15:20 – Panel: Maybe it’s more approachable and it’s easier to dip your toes in.15:35 – Guest.16:29 – Panel: I haven’t heard of KOMODO in long time. I remember that was one of the first IDs that I had checked out. I tried that then went to Ruby Mine and then tried Sublime text and then VS.16:57 – Guest: Komodo was a famous editor.17:17 – Panel: I am curious on RuboCop that the adaption is driven by teaching idiomatic Ruby to people new to the language?17:40 – Guest: I don’t think it’s much about the stylistic stuff at this point. I also noticed that the main driver of the group was...Guest goes into great detail about this topic. 22:44 – Guest (continues): RuboCop offers a bunch of different structure.24:27 – Guest (continues): We are wondering how to approach the issue of performance. The performance aspect tended to be trickier than what we had expected. The majority of developers when given the choice to either secure or make something convenient - they will choose the latter option.25:47 – Panel: That’s why they get hit with a high AWS bill.26:00 – Guest.26:30 – Panel: The things you have learned with RuboCop, is it changing the direction with MRI or the design of the language at all?26:40 – Guest: I would hope so, but I don’t have hard evidence to prove this.If you give people too many options then it could be a waste of time. I don’t care about the nuances.30:06 – Ad: RubyMine! 30-day trial!30:38 – Panel: Would you recommend the Rails style guide if you are building a Rails style project? Should we use that as a baseline and then customize it for your team?30:55 – Guest: The style guide should be good. For a while I was the only editor. Not a lot of the options that are there aren’t my personal opinion, but it’s the general prescription. If you have strong preferences and you have your team agree on those then it’s okay to be modifying it.At the end of the day it’s better to have consistency within a project. You are doing great!32:57 – Chuck asks a question. 33:44 – Chuck: Could I modify a rule?33:53 – Guest: There are varying degrees to the rule.35:56 – Panel: One of your conference talks you talked about the future of Rails and the future of other Ruby frameworks?36:18 – Guest: I am worried about the future of Ruby b/c I see people talking about the maturity of the system but there isn’t a clear vision to where we are going. There are some cornerstones for Ruby 3 that he is repeating.41:05 – Guest (continues): I think we need to commit to the module and the API.45:42 – Chuck: All of those things make sense to me. Is there any desire for people to fork Ruby or pulling / putting some of this in?46:00 – Guest.48:18 – Panel: Transition that to Rails and the future of Rails?48:27 – Panel: There are big companies that are making changes.48:51 – Guest.53:33 – Panel: I think that is a common pattern that most companies move towards.54:12 – Chuck: We did an episode on ElixirMix with Chris McCord. Check that out!54:35 – Chuck: Picks!54:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Komodo Emacs RuboCop RuboCop – GitHub Stimulus reflex Messages: Share Screens Smittybilt Visual Studio Code: Introducing Visual Studio Live Share VRBO Bozhidar’s GitHub Bozhidar’s Twitter Bozhidar’s Patreon Bozhidar’s Open Collective Past EMx Episode 020 with Chris McCord! Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks:Dave Tire Plugs VS Live Share NateShare Screen using Messages on MacCharles VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App Special Guest: Bozhidar Batsov.
RR 387: Ruby Performance Profiling with Dan Mayer
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more!Show Topics:0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”!1:24 – Chuck: Give a brief introduction, please.1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this?2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now...5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark?5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back?6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and...8:09 – Chuck: He is using discourse, and we talked to him on a past episode.8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues.8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users?9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information?10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what?10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe.1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them.12:04 – Chuck: This is off topic from benchmarking, but...12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage?15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that.I didn’t have any benchmarks to capture that. What I was failing to do was...I can talk about what I did do to help people if you want?17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it?18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me.19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it?20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem.I think back by the Ruby 3x3 goals...21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is?22:43 – Dan: What people care about is their application. You can look to see...23:33 – Panel: Automating takes that pressure right off of me and I can do23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or...24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot.24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage.26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances.27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too.28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next.29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything.30:19 – Panel: I think that’s valuable, too.The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else.31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same.31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is.31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...?32:47 – Chuck: It’s generally to resolve an issue here or there.32:57 – Panel.33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point.33:37 – Panel: If I did that my tests would never pass.33:45 – Chuck.33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower.34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made.Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business.35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow.35:55 – Dan: The way you benchmark it...Benchmarking a gem or a library it’s how can it impact other people’s apps.And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on.36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY.37:37 – Chuck: Yeah, that was a great episode.37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though.37:57 – Chuck: Anything that you are working on within this space?38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs.39:05 – Chuck: How can people find you?39:10 – Dan: My blog, Twitter, and GitHub!39:22 – Chuck: M-A-Y-E-R.39:36 – Picks!39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks:DavidAtomic Habits by James ClearDave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy Special Guest: Dan Mayer.
RR 386: Web Console Internals with Genadi Samokovarov
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics:0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please.1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else?2:05 – Guest.3:20 – Chuck: How do you run Ruby on the web console?3:40 – Guest answers Chuck’s question.4:13 – Chuck: The other question is about security concerns – you don’t want to run in production?4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server.5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application.What I just mentioned what does a web console has a space for?6:18 – Guest.7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen?7:46 – Guest answers.8:24 – Chuck: When you deploy a production I don’t even know what this tag is?8:33 – Guest.9:10 – Chuck: Can I run it on Sinatra...or the other ones?9:20 – Guest: If you make a bit of effort...9:42 – Chuck: How does it pass things to the backend?9:52 – Guest.11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default.11:36 – Guest.11:58 – Panel: And if you want to embed it in a view in Rails?12:05 – Guest.12:06 – Chuck: That’s nice.12:08 – Guest.12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me.13:33 – Guest.13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well.14:21 – Guest.14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that?15:00 – Guest.16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform.16:56 – Guest: It’s a tricky business.18:39 – Panel: So is this under active development or...?18:45 – Guest.18:53 – Chuck: What was the hardest part to put this together?19:00 – Guest: Getting it to work!19:09 – Chuck: Nope...just getting it to work.19:15 – Guest.20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that.21:13 – Guest.21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute?22:30 – Guest.24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally?24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong.25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby.26:08 – Guest.26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch.26:50 – Chuck: I’ve already switched.27:01 – Panel: We like our tools.27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain.27:35 – Panel: Maybe my mind is so feeble-minded.27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about.28:12 – Guest.28:21 – Panel: I think the key is the expressiveness – get it the ways I want28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing.28:54 – Guest.29:04 – Panel: How many attendees did you have?29:08 – Guest.29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me.30:17 – Panel: It makes it easy to break into groups if the conference is small.30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other.31:39 – Guest.32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case.32:40 – Chuck: Anything you’re working on now?32:43 – Guest.32:52 – Panel: Nice.33:00 – Guest.33:37 – Chuck: How can people find out about these different conferences?33:50 – Guest: We have a Twitter account.33:04 – Chuck: Let’s go to picks!34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks:David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey GenadiLong Walk FreedomSpecial Guest: Genadi Samokovarov.
RR 385: “Ruby/Rails Testing” with Jason Swett
Panel: Dave Kimura Eric Berry Nathan Hopkins David Richards Special Guest: Jason SwettIn this episode of Ruby Rogues, the panel talks with Jason Swett who is a host of the podcast show, Ruby Testing! Jason also teaches Rails testing at CodeWithJason.com. He currently resides in the Michigan area and works for Ben Franklin Labs. Check-out today’s episode where the panelists and the guest discuss testing topics.Show Topics:0:00 – Sentry.IO – Advertisement! Check out the code: DEVCHAT @ Sentry.io.1:07 – I am David Kimura and here is the panel! Tell us what is going on?1:38 – Jason: I started my own podcast, and have been doing that for the past few months. That’s one thing. I started a new site with CodeWithJason.com.2:04 – You released a course?2:10 – Jason: Total flop and it doesn’t exist, but I am doing something else.2:24 – I bet you learned a lot by creating the course?2:34 – Jason: The endeavor of TEACHING it has helped me a lot.2:50 – Tell us why we should drink the Koolaid?3:02 – Jason: What IS testing? Good question. Whether is it is manual testing or automated testing. We might was well automate it.3:25 – If we are testing our code what does that look like?3:34 – Jason: Not sure what you mean, but I am doing tests at a fine grain vs. coarser grain.4:00 – Show of hands who has...?4:19 – What different tests are there?4:20 – Jason: Good question. One term that one person uses is different to a different person. Let’s start with unit tests vs. integration tests.Jason dives into the similarities and differences between these 2 tests (see above). There are different tests, such as: featured tests, acceptance tests, etc.5:45 – What tests are THE best?5:50 – Jason: Good question. The kind of tests you are writing depends on what type of coverage you are going for.If I had a sign-up page for a user, I would...7:36 – What anti-patterns are you seeing? What is your narrative in teaching people how to use them?8:07 – Jason talks first about his background and his interaction with one of his colleagues.8:58 – Question.9:00 – Jason continues with his answers from 8:07.9:32 – Jason: Feel free to chime-in. What have you done?9:42 – I often ignore it until I feel bad and then I say: wait-a-minute I am a professional. Then I realize I ignored the problem because I was acting cowardly.10:29 – For me it depends on the test that it is.One gem that I found is: RSpec RETRY.11:16 – Jason: The test is flapping because of something is wrong with the database or something else. Since you asked about anti-patterns let’s talk about that! Rails and Angular are mentioned. 13:10 – Do you find that you back off of your unit testing when you are using integration?13:22 – Jason: It depends on the context we are talking about.Jason talks about featured testing, model-level testing, and more.13:58 – What is your view on using MOCKS or FAKES. What should we be doing there?14:10 – Jason: Going to the Angular world I understand Mocks better than now. There was a parable that I think is applicable here about the young and the old fish.16:23 – Jason continues talking about testing things in isolation.16:36 – Question. 16:39 – I have been looking for an area to specialize in and I wrote an eBook. (Check out here to see the articles and books that Jason has authored.)Then I was looking around and I wanted to see what people’s issues are with Rails? They have a hard time with testing. I wanted to help them feel competent with it.18:03 – In your course you have how to choose a framework.I know Ruby has several options on that front – how do you choose?18:24 – Jason: There are 2 factors to consider.Jason tells us what those two factors are. Jason: Angular, React and Vue.19:52 – Panelist: I had a conversation with a beginner and we were talking about the different tests. He said the DSL really appealed to him. The surface area of the AI made it approachable for him.20:27 – Jason: I wished I had figured out DSL out a little better. Understanding the concept of a block. The IT is just a function and you can put parentheses in different areas and...21:01 – That makes sense. Let’s revisit the Tweet you wrote.21:35 – Jason: There are certain use cases where it makes sense. Where Gmail was the thing out there. At some point the Internet formed the opinion that...22:39 – Old saying: Nobody gets fired for using Microsoft and then it was IBM. Nothing wrong with those things if that’s what you are trying to do. Sometimes we make decisions to not be criticized. We try to grab big frameworks and big codes so we are not criticized for.23:48 – Jason: I think developers have this idea that OLD is OUTDATED. Not so. I think it’s mature, not necessarily outdated. I think it’s a pervasive idea.24:31 – I think it suffers a bit when all the mind shares get lumped into one thing.The panelist continues...24:53 – Jason: I don’t know if I like this analogy.26:00 – I agree with that sentiment. It’s crazy that the complexity has become so pervasive.26:18 – I think of SPAs as...26:37 – Jason: Going back to the Tweet I wrote, I am pulling in JavaScript but I am preferring to sprinkle Java into Rails.27:02 – Absolutely. I think that’s where we agree on. Late in 2017 we had the guest...“Use JavaScript sprinkles.”27:49 – Panelist chimes-in.28:37 – Jason: That make sense. Use your preexisting...I am afraid of committing to a single framework. I don’t have anything against JavaScript but I am afraid of using only one thing when something else becomes fashionable.29:30 – Have you found that Java sparkle approach is easy to test?29:38 – Jason: I think it’s easier. Client server architecture...30:10 – Advertisement: Get A Coder Job! 30:41 – Shout-out to the Rails team! What other testing frameworks are there? What if you are not the developer but you are the Quality Assurance (QA) person. They have been given the task of testing on the application.31:30 – Jason: So someone who is not a developer and they want to test the application. I don’t want to get out of my role of expertise. I did talk to a QA engineer and I asked them: What do you do? All of his tests are manual. He does the same stuff as a Rails developer would do.32:52 – Panelist talks about pseudo code. 34:07 – Jason: I am curious, Dave, about the non-programmer helping with tests what is the team structure?34:23 – Dave: You will have one QA per three developers.34:44 – Jason: If you have a QA person he is integrated within the team – that’s what has been the case for me.35:02 – Dave: It’s a nice thing to have because we need to crank out some features and we have a good idea what is wrong with the app. We can go in there and see if our application is good, but they are combining different scenarios to do the unit tests and see what they are lacking. They are uncovering different problems that we hadn’t thought of.36:07 – The organization has to have the right culture for that to work.36:35 – If it’s a small team then it will help to see what everyone is doing – it’s that engagement level. If the team is too large then it could be a problem.37:15 – Jason: Engagement between whom?37:27 – Both.Panelist goes into detail about different engagement levels throughout the team. 38:10 – Jason: Yeah that’s a tough thing.38:49 – It’s interesting to see the things that are being created. Testing seems to help that out. We are getting bugs in that area or se didn’t design it well there...We see that we need some flexibility and getting that input and having a way to solve the problems.39:32 – Jason: Continuous deployment – let’s segue into this topic.41:17 – Panelist: Do you have recommendations on how often we should be deploying in that system per day/week?41:40 – Jason: We would deploy several times a day, which was great. The more the better because the more frequently you are deploying the fewer things will go wrong.42:21 – More frequently the better and more people involved.42:45 – Jason continues this conversation.42:51 – Panelist: Continuous integration – any time you were say to forgo tests or being less rigid?43:14 – Jason: I don’t test everything. I don’t write tests for things that have little risks.43:56 – I think it is a good segue into how you write your code. If you write a code that is like spaghetti then it will be a mess. Making things easier to test.44:48 – Jason: This is fresh in my mind because I am writing an app called Green Field. 46:32 – Uniqueness Validations, is mentioned by Jason.47:00 – Anything else to add to testing a Rails application?47:08 – Jason: Let’s talk about 2 things: walking skeleton and small stories. This book is a great resource for automated testing.Last point that I want to talk about is small stories: continues deployment and continuous delivery. If you make your stories smaller then you are making your stories crisply defined. Have some bullet points to make it really easy to answer the question. Answer the question: is this story done or not done? Someone should be able to run through the bullet points and answer that question.50:02 – I am in favor of small stories, too. Makes you feel more productive, too.50:14 – Work tends to lend itself to these types of stories and running a sprint.51:22 – You don’t have to carry that burden when you go home. You might have too big of a chunk – it carries too much weight to it.51:47 – Book the Phoenix Project. Work in progress is a bad thing. That makes sense. You want to have fewer balls in the air.52:17 – Anything else?52:22 – Jason: You can find me at: CodewithJason.com also Twitter! 52:45 – Advertisement – Fresh Books! 1:01:50 – Cache Fly! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Angular Single Page Application (SPA) RSpec – Retry Ruby Testing Podcast The Feynman Technique Model Book: Growing Object-Oriented Software, Guided by Tests (1st edition) Jason Swett’s Twitter Jason Swett’s LinkedIn Parable: Young Fish and Old Fish – What is Water? Jason’s articles and eBook Jason’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks:David This is Water The Feynman Technique Model Nate Taking some time off Pry Test Eric Fake App Ruby Hack Conference DaveBrooks ShoesJason The Food Lab Growing Object-Oriented Software Special Guest: Genadi Samokovarov.
RR 384: “Sonic Pi” with Sam Aaron
Panel: Dave Kimura Eric Berry Special Guest: Sam AaronIn this episode of Ruby Rogues, the panel talks with Sam Aaron who is the creator of Sonic Pi, which is the main topic that he and the panel talk about today. Sam is a computer scientist who has his Ph.D., and uses the Ruby language. He is also a programmer, educator, live coding musician, and father.Show Topics:1:25 – Panelist: Tell us what you are doing?1:27 – Sam: Good question. I do a lot of different things and I try to challenge programming and take it a newHow can I be the most expressive person with code? I have written things to write music with code.2:00 – Code is just a medium like dancing and writing. You can write to write code but as to write poetry.2:33 – Tell us about Sonic Pi – the project you have developed to generate music from code.2:42 – Sam: It’s a very simple program. It’s an app that you can run on Mac or Windows and others. It was written as a response to the UK opening a new system. How can we get children engaged? And this was my answer to that question.3:37 – Was this developed by a team?3:41 – Sam: Most of it was developed by myself – no real team – but a lot of it was through open source.4:01 – What was the motivation? Why music; why not a drawing library like something visual?4:19 – Sam: Many years ago I had a tragedy in the family. I was struggling mentally with it. One thing that helped me was I picked up a book on a specific language.When I see these visual systems...it can be very daunting and difficult. To me when I use programming tools I thought naturally music.6:14 – Can you talk about the architecture of Sonic Pi?6:50 – Guest: Sonic Pi came purely from response and had a small amount of money to spend – teaching kids how to code. I wanted to get this overtone.I used to be a Ruby programmer. The original core was taken from these overtones. And the way it works is that you have a simple server, Ruby server, and...Three separate processes all talking over the network.9:08 – I want to give the listeners an idea of what this sounds like – it’s pretty amazing.Here is a sound that is 4 lines of code in Ruby. Can you tell us what is going in to make that sound work?9:37 – Sam: The bottom layer is...the different waveforms for that sound clip. There is a mathematician who figured out...Sam talks about how sound works and how Sonic Pi works. 12:24 – Sam: The way to record a sound and the way to...12:35 – Acid Walk – let’s take a listen.12:50 – That is purely very intricate – that was about 60-80 lines.13:00 –Sam: The bass line was...and the ticking sound was how long to wait again. It sounds complicated but take notes from a scale (different color palettes of notes) – notes you pick from. It will create the melody randomly for you. Adding some distortions and reverbs, etc.14:03 – I am not musically inclined. So when I think of Raspberry Pi – why did you choose Ruby and not Python for developing the Sonic Pi engine?14:27 – Sam: Your statement – “You are not musically inclined,” bothers me. We can all wave our arms around and dance. Having that mind thought is a barrier to your well-being. There was an interview with a lady over 100 years old. Any regrets? When I was 80 – I could have been playing for 20 years!15:43 – Sam: My contract was about to expire and then was the same year that Raspberry Pi released and had staggering success. They didn’t necessarily have...Every week I went into the classroom with a different version.Actually there are different pros and cons in an educational context.19:00 – Looking at the Sonic Pi in Ruby but also some Erlang in there?19:15 – Sam: I talked earlier about the three components. Sam talks in-detail about Ruby and why he also used some Erlang. 22:30 – Sam: Erlang has a beautiful design and there is no garbage collector. It was the right architecture. I thought – how am I going to sit down and learn Erlang? Well you just make friends. Another program we used that takes these messages and...23:40 – Have you had any requests to make this an ONLINE application?23:50 – Sam: I have been thinking about this for some time. The web audio isn’t super solid. You would have to have a really decent invitation in web audio that is rock solid. The music applications still don’t use the web because it isn’t there quite, yet.25:35 – Advertisement – Get A Coder Job 26:16 – Can you talk about the inspiration to the DSL that you are using on Sonic Pi? Why create your own DSL?26:31 – Sam: Sure! Your syntax is a data structure, which...28:28 – You have been using this since 2013?28:41 – Sam: Yes I do the majority of the work. It is an open source project and a core team of developers who are the core contributors. People own their work that they have done. It’s a powerful team. There are visual contributions among many different ways. I have done the crappy jobs.29:51 – You have put so much time into this? Are you getting paid for this?30:05 – Sam: I am extremely fortunate to be getting paid for this. It’s being funded by various sources. These people allowed me the freedom to create Sonic Pi the way that I wanted to build it. The Pi Top they provided some funding, among other donors and such. I have a patron page that is growing. I am doing more keynotes and conferences. This was designed to help students learn how to code. I do look for contributors. The language is there but we need the tools.32:46 – I run a company called CodeFund to bring money to open source. There are different ways that people can generate funds for projects. There are organizations that are helping us to make our projects sustainable.33:22 – Sam comments.Sam: I am trying to find ways to be sustainable, so I can be comfortable.33:53 – Where can people go to donate?34:02 – Go to SonicPi.net. Don’t donate if you don’t like it. If it makes you smile then please donate. You can join and donate.34:43 – Sam: When you have funding it can be removed in one sweep.35:19 – You have an active community?35:20 – Yes! Programming music communities are great. Yes, we have musicians in there and coders in there.36:33 – People can post their music – they aren’t posting music they are posting code.36:47 – Sam: Yes! If you can represent your music in some weird syntax, that can be stored somewhere like dots and lines (like Western music notation) then that’s great.It’s not just what the trumpet and the violin should play but what studio effects we should add. Even if you are using multiple threads those tings are always resolved. I can take my new code and hear the exact same things that I’ve heard. When you go to see performances and see live coding performance.39:50 – Panelist comments.What does the future look like for Sonic Pi?40:02 – Sam: It’s a business problem more than a technical problem. I am working on accessibility. I am making sure that this and that works well, and navigation to work with. Also, collaboration, too; the ability to share and contribute their compositions in one place. Can we get children from Africa to write pieces with children from Finland?41:57 – Anything else that we should know about Sonic Pi?42:08 – Sam: It really depends. What’s important to realize that this whole coding /music thing is a really new thing. When you see a guitar it’s had thousands of years to evolve. What we have right now is really exciting. We should see this as new musical instruments. Its’ really tough to hear people say, “code cannot make music.” Also, not to have any pre-conceived ideas, and to share their work with others. We aren’t professional musicians and just to explore, experiment, and play. People might be too reluctant to share because they are comparing it to music that they adore.44:56 – Panelist: This whole song is 206 lines of code of the Mario Theme Song. 46:12 – Intro and outro for podcasts.46:37 – How can we find these?46:42 – Sam: I tweet these. A few years ago I got into Rolling Stone magazine. Download an opera and download a rock song.48:49 – Advertisement – Fresh Books! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Sonic Pi Sonic Pi – GitHub In Thread Sonic Pi Xavriley – ReadME.md Undercover SimpleCov ClarionHub Atomic Object – Sam Aaron Sam Aaron’s Twitter Sam Aaron’s Instagram Sponsors: Sentry Get a Coder Job Course Fresh Books Picks:Eric Sonic Pi Clarion Hub Artiphon Dave Simple Cov Under Cover SamEmacs Program EditorSpecial Guest: Sam Aaron.
RR 383: “Rbspy: A New(ish) Ruby Profiler!” with Julia Evans
Panel: Charles Max Wood Dave Kimura David Richards Special Guests: Julia EvansIn this episode of Ruby Rogues, the panel talks with Julia Evans who is a software engineer at Stripe and lives in Montreal, Quebec, Canada. The panel talks with Julia about her tool Ruby Spy among other topics. Check it out!Show Topics:1:34 – Julia gives her background.1:52 – Chuck: You’ve been on the show before. Listeners, go check it out!2:30 – What is Ruby Spy?2:09 – Julia: I wanted to know WHY my computer was doing what it was doing. I felt that it was my right, so I wrote that program.3:20 – Julia: This does have these profiling tools in Java. I thought it was unfair that Java had better tools than Ruby. I figured Ruby should have it, too.3:44 – Chuck talks about tools and Ruby Spy.4:05 – Julia recommends it.Julia: You had to install the gem in order to use it.4:30 – Chuck: some people say that it has affected their performance.4:42 – Julia: Ruby Spy is a separate process.Julia continues this conversation and goes in-depth of what Ruby Spy is, etc.5:27 – When would you use something like this, and what kind of data would get you back to debug the slow points.5:43 – Julia: When you run Ruby Spy it will...6:20 – Chuck: Does it give you method names?6:25 – Julia: Yes, 20% in this method or...6:37 – I can see how that would be helpful on certain aspects. Being able to narrow down the 1,000 methods where you cab get your biggest bang for your buck.7:05 – Julia comments.7:35 – Chuck: I know people pay for Relic...7:56 – Chuck: When it tells you which method is taking a long time, will it look at the stack and THIS method is insufficient b/c this other method is insufficient? How does it do that?8:35 – Julia answers the questions.8:58 – Chuck: I’d imagine that it could keep anything in memory. Did you have to do a bunch of work where THAT means THAT?9:20 – Julia answers.Julia: The differences weren’t that big between the different versions.9:54 – Julia goes through the different ways the versions are different.11:56 – Panelist asks a question.Is this meant for Ruby Scripts?12:10 – Julia: It doesn’t care – as long as you are using the Ruby Interpreter.12:25 – Chuck: Sometimes my performance issues is Ruby, and sometimes it’s the database. For Ruby it will sit there and wait for IO. Is that a blind spot that you will have in Ruby Spy?12:54 – Julia: Great question. There are 2 ways to do profiling.Julia explains these two ways. 13:54 – Wall Clock Time.14:04 – Chuck: Your computer has a speed and however long it takes to run one cycle. It is similar, but...14:26 – I guess as long as it’s relative – I was looking at these graphs you wrote.14:51 – Julia.14:56 – Panelist: That has been my issue. Changing context into a profiler...15:27 – Julia.15:38 – Chuck: Do you have to run it through something...?15:49 – Julia.15:53 – Chuck: Is that the most effective way to look at the data through Ruby Spy?16:07 – Julia: I twill show you the output as it is profiling. 2 visualizations: flame graph and...16:45 – Chuck.16:49 – Julia: It is the only visualization that I know of.17:00 – Chuck: I don’t know.17:05 – Julia: You have spent this amount of % to...How much time was spent in this function or that function?I feel that the flame graph is much more helpful than a list of percentages.17:33 – Chuck: What are you looking at in the flame graph?17:37 – Guest: Basically what time was spent in that function. You look at what is big, and then you figure out if that is something to optimize or not. You go to the docs and...18:36 – Jackal.18:40 – Main problem that I would run into is the information OVERLOAD.Now you have the action controllers and all these other components that aren’t normally visual.Panelist asks a question to Julia.19:29 – Julia: It does give you everything. If you have a real serious problem often the answer will really jump out at you. What I would say – if something is really slow it is right there.20:08 – Chuck: You will see the name of the method?20:15 – Chuck: Any other information it will give you?20:22 – Julia: The line number.20:28 – Chuck asks another question.20:41 – Chuck: Success stories?20:45 – Julia: Yes, I do. GitHub – success stories.Julia gives us one of her success stories. This user said that it helped them by 30%.21:28 – I can’t imagine using a Rail app that is over 10 years old. So much as changed! A lot of the documentation would be harder to find.22:00 – Julia gives another example of a success story.22:10 – When it goes to production – my brain turns off and get jittery. Figure out what happens in production and I wouldn’t want to guess for an app that couldn’t be down. This is what is happening right here and right now.22:46 – Chuck: How do they get it out into production...22:57 – Julia: Through GitHub that you can download. If you are on a Mac and your developing you can do it through Home Brew.23:17 – Chuck and Julia go back and forth.23:27 – Panelist: You don’t need to have it all the time, but a good tool.23:44 – Julia: I want people to use it but not all the time; only when they need it.23:58 – Panelist: I think on a lot of these scripts...Rails Panel – Panelist mentions this. 25:02 – Panelist asks her a question.25:12 – Pie Spy is something else that someone wrote.25:28 – Julia: Ruby Spy came first, and Pie Spy is inspired Ruby Spy. He did a good job building that.25:50 – Advertisement – Code Badges26:35 – People still use PHP?26:42 – Julia: Yep!26:47 – Chuck talks about his neighbor and how he raves about this feature or that feature.27:07 – In PHP’s defense it has come a long way. I think they are at version 7 or version 8. Sounds like they did a lot of new things with the language.27:31 – Julia: Instead of that or this language is better – what TOOLS can we use? I hear Ruby users make fun of Java, but Java has great tools. What can we learn from that language rather than bashing the other languages?28:13 – Chuck chimes-in.Dot.net.28:58 – Chuck: Let’s talk about that with the opensource.29:09 – Julia talks about the opensource project.30:30 – Julia: I asked my manager at Stripe to do this sabbatical in advance. I worked on it for 3 months. I got a check from Segment.31:05 – Panelist adds in his comments and asks a question.31:26 – Julia never used it.31:32 – I have done a lot with Ruby Motion in the past. I am curious how that would work with Ruby Spy?32:18 – IOS is pretty locked down, so I don’t think that would fly.32:36 – Chuck talks about Ruby Motion and how he thinks Ruby Spy would / wouldn’t fit.32:56 – What is funny about that, Chuck, is that you can ALT click...34:07 – Chuck mentions another app.34:17 – Julia.34:40 – Chuck.35:03 – Chuck: What else are you doing with Ruby Spy that is new?35:05 – Julia: Not much.It’s fun to see people come in to make contributions.35:33 – Panelist: Here is a suggestion, some kind of web server that you could...35:57 – Great idea.36:04 – Chuck: It wouldn’t be hard to embed it.36:12 – Julia: Sharing it between...so we don’t have to build the same thing twice.36:33 – Chuck and Julia go back-and-forth about Ruby Spy and Pie Spy,37:23 – Julia: Pearl was my first language, and I still love it.37:32 – Chuck: I guess I can’t knock it because I really haven’t tried it.37:48 – Ruby was inspired by Pearl so there’s that.37:57 – Chuck: How do people start using your tool? What is your advice?38:01 – Julia: Yeah just try it and see. Install it through Home Brew if you have a Mac.38:25 – Chuck: Picks!38:32 – Advertisement – Get a Coder Job.39:07 – Picks!Links: Get a Coder Job Course Ruby Motion Ruby on Rails StackProf – GitHub Ruby Spy Rails_Panel – GitHub Julia Evans’ Twitter Julia Evans’ Blog Julia Evans’ GitHub Julia Evans’ LinkedIn Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks:Dave Vise Deep Freeze Charles Elixir in Phoenix Vue JS Views on Vue Side Projects Doc McStuffins Headphones DavidEd LaheyJulia Growing a Business Notability App Special Guest: Julia Evans.
RR 382: "When to Build... When to Buy" with The Panelists
Panel: Charles Max Wood Dave Kimura Eric Berry In this episode of Ruby Rogues, the panel talks amongst themselves the topic: “When to Build, or When to Buy.” They discuss how time is limited, and whether it is worth their time to build their own app/software or to just purchase. They discuss the pros and cons of each. Check-out today’s episode for more details!Show Topics:1:40 – Chuck: Anything that prompted choosing this topic?2:13 – Dave: I am not a huge stickler of keeping tracks of things. With a new car, I wanted to start this off right. I wanted an app to show history of car. I wanted a simple view and wanted to take pictures of receipts. I didn’t find anything out there that I liked. Do I want to write a web application?3:29 – Dave: I am going to write this app. There is a lot of the new technology, so I can keep up-to-date with real world technologies, with the act of storage. Keeping my skills sharp. Solving a real world need that I have.4:06 – Panelist: Funny thing. That is a decision that has evolved with me. As a younger developer I would build everything that I could. I thought: “I have to own this,” I thought I have to have total control of this. This is for me. I try to buy everything that I can. There is only so much time in the day. Let’s point the question back to Dave. Are you more in the process of creation?5:19: Dave: It fits to my needs. I don’t need something overly complicated. I think we often find situations where there is a justifiable case to build it then to buy it. If you buy it you have little control over the features and other things. What’s important to you is not important to others. So you will have to find a company that will meet your needs.You bring up an interesting topic and that’s data.7:29 – Chuck: You are talking about the level of control. Eric this might sound familiar with sponsorship and so on. Eric said: Dude you are a developer. There is nothing out there that I need so I have to build it. I opt to trying to buy it if I can.8:35 – Panelist: Yes, definitely.By focusing all of my attention on an application that won’t give me an ROI. Leave that other stuff to much smarter than me in that domain.9:24: Panelist: I agree. If it is a core part of your business than, if you are buying, that might be a disadvantage. For example...I used a service called IMPROVLY.12:00 – Chuck: it might not give you the control that you want, but if it can get you most of the way there then it will eventually move up in priority.12:33 – Panelist: Look at utilities that support you, then that’s where MVPs can come into play. One limited, viable product. For example, the app tracker for my cars. I just wanted something simple. Some of the extra bells and whistles can come later.Something like code fund – there is a lot of expected features. There is so much business that goes into it.When I have time to build that stuff in then I will do that later. If it is too feature-rich then they will overwhelm themselves. They try to do everything today. Often that could lead to bad code, things not working properly. You save time by doing it right the first time. I think you have to really gauge what is your MVP? What can I do to make this functional? Then add in the features within the application.15:19 – Panelist: When you decide to build – how much influence past products to drive your development.15:38 – I say a ton, because then you are going to be reinventing the wheel. You OWN interpretation to things is fine. There is only so many ways to build something. See what people want and what they need.16:15 – Panelist: It tends to muddy the developing waters a bit. I like to approach things not knowing what the competitors are doing. Then you aren’t constrained by past examples.I approach it as: How would I want to approach this by an individual so I am not blurred by competitors. 18:05 – Chuck: I build a feature I need and then ask myself: How do I put this together?What I need – I know what the outcomes need to be. At the end of the day I am looking for a model to provide what I need. In both of those cases.18:44 – Panelist: Yes, having a good knowledge of the domain is good.It is more fun to build, right?19:37 – Is it fun to build or is it to integrate? I like integrations better.20:13 – Chuck: I have recently been integrating ZAPIER. 21:12 – Panelist: There are some things I will stay away from. I want to keep things with the specialists. If that means I am paying for the fees to use a third-party.21:56 – Yes, 100%. You have to ask yourself: How lazy are you with X?23:08 – If Twitter goes down then what? Have multiple options. You need to have other ways to authenticate in that area. So that means you have to be developing in...I think that will come down to your business needs. It will help the workflow, and help you make decisions If you are pinning yourself into a corner on time and resources. I think it’s sad that that has to be said. But look at other applications out there that are pinned into corners. People didn’t think of what they would need in the future. I am not saying that my products aren’t exempt form that.25:52 – How do you qualify a good buy? This hits my criteria for the buy.26:06 – If it’s providing a value. Not just this month but the following month – is this going to be worth the value. Mail hosting. This is worth it to me. There is so much hassle that goes into it. Then I have to maintain it. My business is hurting because I am focused somewhere else. I want to be able to answer emails from people. Focusing on the products that I am providing. Do I need to pay someone to support27:35 – Panelist: The speed to integration and the speed to usage. It’s all about the pain. How much pain will there be to build one? Hire the laziest person possible. I pride myself being an extra lazy developer. I can I build the best thing in the least amount of time. Time with my brother in the past has shown me this. Perhaps the type of developer we are determines the answer to that question. I like to get code out the door more than create the code. What about you guys?28:56 – Chuck: I like building it but I LOVE shipping it.29:07 – I like creating it. Shipping part is the “I finished it.” Getting from nothing to something. Shipping is like the celebration for me.29:32 – Digital Ocean Advertisement. 30:10 – It’s not to say that I don’t buy things, cause I do. The amount of software that I buy outweighs the ones I build. My time is limited. I do need control over the data. We were struggling a few years ago financially. I need a thumb drive and we fought on whether or not we could buy that. Finances are intimate details. If that information was stolen, so I built my own we application in my business to hold our finance data records. We wanted complete control over that. I saw that that it was a wise investment of my time. I had insecurities about that information leaked or stolen. Now we have too many thumb drives.32:31 – I bought a thumb drive years ago for it and paid $50-60 for that. Which is insane.32:55- Chuck: Build vs. Buy topic has been covered very well, so far.When you are building, which features to prioritize? Building features – which one to prioritize?33:47 – It would be less impactful to your client base. You have sponsors and signing up for the show. The listeners could be returning guests. But your sponsors are coming on ALL the time. Feature rich platform for them. You want them to enjoy using your product. I think that would be the most important. Having something for your scheduling. It doesn’t have to be feature rich. But34:43 – Chuck: I understand the trade-offs. Anything I can do to make the system automatic then that helps. Some people want some LIVE episodes.That leads the sponsorship into the content production stuff. Beyond telling Eric, my editor, where to put the ads within the episode.36:52 – Panelist chimes in.37:15 – They want the testimonial. The other end to that when we started off we got sponsors because we were novel. We were a different take on Ruby. The market has changed. Things change. Then it was okay well Ruby Rogues was a great way to meet developers. You can do conferences but you reach a lot of people in one week. Some of our sponsors early on - they past their ROI. Podcast market has changed. Some of this feedback has made me rethink things. The market has changed. People want to hear the personal touch and the personal message. They want to hear how these things are being run and how to fix the bugs. Just being aware of the needs and how the needs change. It is easy to get comfortable. Then it turns out jQuery doesn’t always cut the mustard anymore. But maybe it does? If you get comfortable then you will pay for it.39:58 – So true. Like Code Fund.Blog Post: What is Keeping Me Up At Night?41:11 – Chuck: Even their needs have changed. That feedback is crucial. It’s not just about keeping tabs on this stuff. Why are you loosing the publisher? Are you getting the feedback that you need. I am have gotten critiques from Eric and other people. Oh ok, let me change the packing to serve their needs. Kind of roll with the punches.If you aren’t talking back to your customers then there will be issues.42:18 – Panelist: Side topic of how do you receive feedback? Some people there is a small minority that will bash you. They won’t give you constructive feedback. They are being a mean person.Having a good attitude is going to help with the feedback to make your product better.43:15 – Chuck: Nobody wants to have that confrontation.43:30 – I have grown to appreciate humanity. When you are asking them about: why did you leave?I see that they’ve read it 4-5 times but they didn’t hit reply.Am I doing this? Am I not doing this?45:11 – Getting the opinions out there can help you if you can find the positive twist to even negative comments.45:44 – How can this feedback make me a better person, podcaster or better in general? You can find that in the nastiest feedback that you may receive. 46:29 – But on the flipside – if you decide to buy – make the feedback constructive. Honestly46:56 – I had a similar experience. Geekbot. I just bought it and I love it. They do daily standups on Geekbot. They kept skipping days. But they asked for me to try again, I di and I am glad that I did!48:49 – Panelist: When you are talking about building your own software and you get that feedback it’s important not to be a person pleaser. If it doesn’t help ALL then it’s something you might NOT wan to build it. I t has to be globally beneficial. Do the right thing. I50:49 – Chuck: Anything else?51:01 – To UNSUBSCRIBE make them fill out a long form before you leave. One more kick to the groin.51:17 – Chuck: Subject Line: Please Piss Me Off.How can we make this more effective?51:40 – I send them weekly stats. I solicit through that e-mail.52:00 – I think the point is that most people who buy software are HEARD and that they are a valuable customer. Their voice does matter. You want to solve their problems in a least expensive way.52:36 – Chuck: Making it SUPER easy for them.53:18 – Final thought about building: if someone has to leave your application, to do the task at hand, then your app is missing some core feature(s) that your users are wanting.54:27 – Picks!54:32 – Advertisement for Get a Coder Job! Links: Get a Coder Job Course Zapier Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks:DaveShapeokoEric Geekbot Polymail Airbrake Charles My Ruby Story Podcasts Orlando - FinCon or Microsoft Ignite MeetUp Park City Meetup
RR 381: “Ruby GUI Development” with Saverio Miroddi
Panel: Charles Max Wood Dave Kimura Eric Berry Special Guests: Saverio Miroddi In this episode of Ruby Rogues, the panel talks to Saverio Miroddi who is an engineer among other things. Saverio has written articles, and a link to two of his articles is found below. The panel and Saverio talk about Ruby, Ruby Motion, Shoes, Hackety Hack, and much more! Check out the episode!Show Topics:2:05 – Chuck asks a question.2:42 – Chuck: What do you recommend for the listeners?2:49 – Saverio: At the time I recommended an underdog. Now, making a recommendation is kind of hard. It depends on what they need. It’s fascinating in a way, because web development is not straightforward. Through the choice the subject is so wide.3:58 – Panelist: Building desktop applications the very last thin I think: I should build this in Ruby. It sounds like I am not the only person. Why would people want to build desktop apps in Ruby versus another program?4:38 – Chuck: I was thinking the same thing.4:59 – Saverio: Personally, I like consistency. When Ruby came out it’s meant to be very easy. It should be easy to hack a certain tool. It depends on a case basis.6:15 – Panelist: How does Ruby shine in this respect?6:19 – Saverio: It’s hard to say. It is a compromise with everything. That’s the case – if it is meant to be simple, keep it simple. When I wrote my app I was looking for consistency. Ruby is far from ideal and it’s compromising the project.8:02 – Panelist: Tell us how you use it? Tell us your cases.8:17 – Saverio dives into this topic.9:05 – Panelist: I hate web applications online – I want it on my desktop. But it’s funny; I am the opposite when I make it. I really like the idea of Ruby being expanded beyond web application.Panelist continues to talk about what/where/how Ruby is used or not used.10:30 – Chuck: I like the idea of expanding to other areas, as well. Do you think there is enough momentum to get it to a new place?11:09 – Saverio answers this question.Saverio: To be honest, this might just be a niche. It’s being developed at a slow pace. I know a few things use Ruby, and they just want to use a few small tools, and a few frameworks.12:38 – Panelist talks about Ruby and how it can be good for kids and beginners because of the visual component/feedback.13:49 – Saverio: I agree.13:59 – Chuck: I asked earlier, what would you recommend to kids to get started?14:20 – Saverio answers the question.16:02 – Panelist: I think I have a compromise, what about a web application that loads like a regular web page, but also has offline functionality? If you go offline it can load and sometimes work. Now you have a native application.16:47 – Chuck adds in a comment.16:53 – Advertisement 17:31 – Saverio: That would be complex, right?17:44 – Chuck: They were headed towards desktop but never got there.17:55 – Panelist: There is Ruby Motion. 18:41 – Chuck: We are going to have a special guest back to talk about doing Ruby Motion on the Nintendo Switch. I think it will take a lot to compile to get to the new system.19:07 – What is your experience with building Opal?19:17 – Saverio: I excluded those, actually.19:50 – Panelist: Let’s talk about data and storing data?20:04 – Saverio: Definitely.Saverio dives into this topic...20:28 – Chuck: Do you use Active Record?20:32 – Saverio: No.21:00 – Saverio: I like simplistic solutions.21:19 – Chuck: That sounds like it wouldn’t be completely foreign for people who have done web development.If we are more web active what will throw us off? Just in general. Your visual is different than the web. It’s different between a desktop and a web app.22:21 – Panelist: If you are building in Ruby it can be locked down to a single thread.22:37 – Saverio adds his thoughts.22:59 – Panelist: Any open source projects that are gooey based application?23:25 – Saverio: I am not aware. There are applications out there that are getting traction, though.23:50 – Chuck asks Saverio a question.24:01 – Saverio talks about Ruby25:12 – Saverio is deciding on whether or not to transition to another language or not.26:36 – Chuck: Things that are built with Shoes...Hackety Hack?26:55 – Saverio: It is hard to write in Shoes. It’s fun for the beginner.27:34 – Chuck: Anything else?27:41 – Panelist: This has to do with the Gooey, and it’s Native Fire.29:05 – Chuck chimes in.29:26 – Panelist continues talking about this topic.30:48 – Panelist: To make it beyond a toy, there needs to be more community support and more examples. I have been in Ruby for a while, but building applications in React and Electron is not that simple as in Ruby. I hope to see more support in open-source projects, and to take it to the next level. This is a story yet to be told.31:52 – Panelist: My concern is it always looks like a high school project.32:15 – Chuck: Yeah, doesn’t look completely polished.32:19 – Saverio: Yes, when you go to a Ruby talk then...32:50 – Chuck: Anything else?33:04 – Saverio: I have nothing else to add.33:10 – Advertisement 33:47 – Picks!Links: Get a Coder Job Course Ruby Shoes Saverio Miroddi’s GitHub Saverio Miroddi’s article, “Using scripts in any language for...” Saverio Miroddi’s article, “An overview of Desktop Ruby GUI Development in 2018” RhoMobile Ruby Motion Ruby Gems Hackety Hack NPM – Nativefier Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks:Charles Books – I have been devouring stuff on Audible. Personal growth tape – The Queen’s Poisoner by Wheeler A View from the Top by Zig Ziglar Code Badges Dave Command strips – 3M NPM – Nativefier Eric 2 courses, plus a 3rd! How to write an open source How to Contribute to an Open Source Project on GitHub The beginners guide to React Free courses on Egghead SaverioMovie: The Founder Special Guest: Saverio Miroddi.
RR 380: "Deploying Ruby on Rails application using HAProxy Ingress with unicorn/puma and websockets" with Rahul Mahale
Panel: Charles Max Wood Dave Kimura Eric Berry Special Guests: Rahul MahaleIn this episode of Ruby Rogues, the panel talks to Rahul Mahale. Rahul is a Senior DevOps Engineer at BigBinary in India. He has also worked with SecureDB Inc., Tiny Owl, Winjit Technologies among others. In addition, he attended the University of Pune. The panel and the guest talk about Kubernetes.Show Topics:1:25 – Swag.com for t-shirts and mugs, etc. for Ruby Rogues / DevChat.tv. 1:49 – Chuck: Why are you famous?1:57 – Guest’s background.4:35 – Chuck: Kubernetes – Anyone play with this?4:49 – Panelist: Yes. Funny situation, I was working with Heroku. Heroku is very costly, but great.The story continues...6:13 – Panelist: I was so overwhelmed with how difficult it was to launch a simple website. Now, that being said we were using the Amazon EKS, which is the Kubernetes. They don’t have nearly as much good tools, but that’s my experience.6:48 – Chuck: I haven’t tried Kubernetes.8:58 – Rahul: I would like to add a few comments. Managing Kubernetes service is not a big deal at the moment, but...11:19 – Panelist: You wouldn’t recommend people using Kubernetes unless they were well versed? What is that term?11:40 – Rahul: Not anyone could use the Kubernetes cluster. Let’s offer that complexity to another company that can handle and mange it.13:02 – The guest continues this conversation.14:02 – Panelist: I didn’t know that Kubernetes needed different nodes.14:28 – Rahul continues this topic.15:05 – What hardware requirements do they need?15:19 – Rahul: Yes, they do need a good system. Good amount of memory. Good network space.15:45 – Panelist asks Rahul a question. 16:30 – Rahul: Let’s answer this into two parts. Kubernetes topic is being discussed in detail. 18:41 – Chuck adds comments and asks a question.18:58 – Rahul talks about companies and programs. Check out this timestamp to hear his thoughts.20:42 – Another company is mentioned added to this conversation.21:55 – Additional companies mentioned: Google, Microsoft, IBM, etc. (Rahul)22:14 – Chuck: It’s interesting how much community plays a role into success stories. Whether or not it’s best technologies it comes down to where there are enough people to help me if I don’t know what to do.22:43 – Rahul: People, even enterprises, are there.23:15 – Chuck: At what point (let’s say I docked my app) should they be looking at Kubernetes? Are you waiting on traffic? How do you make that call?23:56 – Rahul answers the questions.26:29 – Rahul: If your application is...27:13 – Announcement – Digital Ocean! 27:51 – Chuck: How does someone get started with Kubernetes?27:53 – Rahul answers the question.30:00 – Chuck: It sounds like you have an amateur setup – Dave?30:21 – Dave: I think the problem is that there is not a Kubernetes for dummies blog post. There has always been some sort of “gottcha!” As much as these documents say that there are solutions here and there, but you will see that there are networking issues. Once you get that up and running, then there are more issues at hand. The other strange thing is that once everything seems to be working okay, and then I started getting connectivity issues. It’s definitely not an afternoon project. It takes researching and googling. At the end, it takes a direction at large that the community is investing into.32:58 – Chuck makes additional comments.33:21 – Dave adds more comments. Sorry bad joke – Dave.33:40 – Topic – Virtualization.34:32 – Having Swamp is a good idea.34:44 – Rahul adds his comments.36:54 – Panelist talks about virtualization and scaling.37:45 – Rahul adds in comments about the ecosystems.38:21 – Panelist talks about server-less functions. 39:11 – Rahul: Not every application can...40:32 – Panelist: I guess the whole downside to...41:07 – Rahul talks about this.43:03 – Chuck to Eric: Any problems with Kubernetes for you?43:05 – Eric: Yes – just spelling it! For me it feels like you are in a jet with all of these different buttons. There are 2 different types of developers. I am of DevOps-minded. That’s why we are getting solutions, and tools like Heroku to help. When I listen to this conversation, I feel quiet only because you guys are talking about spiders and I’m afraid of spiders.44:44 – Dave to Eric: Having information and knowledge about Kubernetes will help you as a developer. Having some awareness can really help you as a developer.45:43 – Chuck: There are all these options to know about it – they way he is talking about it sounds like it’s the person on the jet. Don’t touch the red button and don’t’ cut the wrong wire! It feels like with software – it’s a beautiful thing – you erase it and reinstall it!46:50 – Dave: What? What are all of these crazy words?! What does this exactly mean? The visibility is definitely not there for someone who is just tinkering with it.47:16 – Rahul: It’s not for someone who is tinkering with it. Definitely.50:02 – Chuck: We have been talking about benefits of Kubernetes – great. What kinds of processes to setup with Kubernetes to make your life easier?50:40 Rahul answers the question.53:54 – Rahul’s Social Media Accounts – check them out under LINKS.54:29 – Get a Coder Job Course Links: T-Shirts for Ruby Rogues! Get a Coder Job Course Ruby JavaScript Phoenix Heroku Amazon EKS Kubernetes Kubernetes Engine Kubernetes Setup AKS Kubernetes – Creating a single master cluster... Kubernetes GitHub Docker Rancher Learn Kubernetes Using Interactive...by Ben Hall Podcast – All Things Devops Nanobox Cloud 66 Chef Puppet Ansible Salt Stack Orange Computers Rahul Mahale’s Blog Rahul’s Talks and Workshops Rahul Mahale’s LinkedIn Rahul Mahale’s Facebook Rahul Mahale’s Kubernetes Workshop via YouTube Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks:Charles Conference Game – TerraGenesis – Space Colony Book – The One Thing DaveOrange ComputersEric Cloud 66 Nanobox Rahul Podcast – All Things Devops Kubernetes Special Guest: Rahul Mahale.
RR 379: "Caching in Rails" with Jeff Kreeftmeijer
Panel: Charles Max Wood Dave Kimura Eric Berry Special Guests: Jeff Kreeftmeijer In this episode of Ruby Rogues, the panel talks to Jeff Kreeftmeijer who is a Ruby and Elixir developer at AppSignal. Jeff writes for the AppSignal's newsletter and has a blog. Check out today’s episode where the panel talks about AppSignal, Russian doll caching, Drifting Ruby, JavaScript Sprinkles, cache warming, N+1 plus other topics.Show Topics:2:47 – Code Fund & New Relic. 3:40 – AppSignal might be the only support for Elixir.4:12 – The integration, the ease was so simple and your (Jeff) documentation made it very easy.4:46 – Comparatively to New Relic, AppSignal is cheaper, isn’t it?4:59 – We don’t charge for host, we charge per request. That’s where to difference in price comes from. You get a number of requests in your plan. AppSignal – you pay for what you use.5:50 – Chuck has used New Relic in the past, but only pay for the month that he needs.6:07 – Panelist talks with Josh Adams and relays the conversation to the panel and the guest.6:48 – Eric to Dave: Do you run into this with Drifting Ruby? Where people just pay for what they need and cancel afterwards.7:41 – Dave: Yes, I do come across this. There isn’t much you can do about it. People will do what they need to do.8:24 – Jeff: We don’t have a lot of this problem with AppSignal. By the way, I have never done that before – you are all horrible! ☺9:02 – Chuck: Let’s dive into is what is your approach to performance on Rails?9:24 – We started the vlog series to help them with that. Sometimes you run into limits of what Ruby can do, and stuff like caching can help. It’s never really a single issue. That’s one of our challenges as a company to hook into everything (integration). We do support, per communication, to help with tech issues, but usually it’s set-up related. Everybody’s problems are different because everyone’s set-up is different.11:02 – Chuck: Most of these posts are about caching and other topics. I’m going to go to something that I misunderstood for a while and that is Russian doll caching. I didn’t quite make the connection in my head.11:40 – First, let’s talk about fragment caching.13:49 – Jeff explains Russian doll caching. 18:44 – Chuck makes comments and asks Jeff a question.19:43 – Jeff confirms the panelist’s answer.22:00 – Jeff: Another solution is JavaScript Sprinkles. 22:27 – Digital Ocean’s Advertisement.23:12 – Question from Chuck to Jeff.23:38 – Chuck talks about what he will discuss at the Summit conference in October.23:55 – Panelist has had experience with Russian doll caching. Performance can be smoke in mirrors. Application he worked on before, we did tons of caching (query caching, Russian doll caching, and others) it was all about handling the cache key.25:32 – More comments about caching from another panelist. Cache warming is mentioned, too.26:46 – How do you utilize cache warming?27:39 – Chuck asks a question.27:44 – Question answered.28:12 – Does something like this exist for Phoenix?28:28 – Jeff: I don’t think there is something like that for Phoenix.28:50 – Chuck: When do you want to use one caching over another caching?29:09 – Jeff: “Depends on a couple of things. N+1 is a feature and that you “should” rely on Russian doll caching, and generally that is not an accepted thing. You could do that, but that is applied to a specific thing. What do you guys think?”30:31 – Panelist: Rendering partials is an expensive endeavor.31:38 – This topic continues between panelists and Jeff.32:25 – Jeff: Fragment caching is a good fit for that.32:56 – Question: You have a blog, one of your posts that you talk about you discuss open source projects maintainable. Talk to me how that led you to write it?33:32 – Jeff: Three things you should not do, based on mistakes that I made in the past.1.) Navvy – had adapters for everything.2.) Dropping support for older visions of your dependencies.3.) Hand over projects if you can’t help anymore.This whole article is based on me messing up.35:07 – Chuck makes some comments.35:27 – Panelist: Ran into a problem the other day, there is a dependency that hasn’t been updated in over a year. They are waiting to solve all issues. I submitted an issue to be resolved.37:02 – N+1 Queries – is it a bug or a feature?37:12 – If you do nothing with it then it is a bug.37:21 – Chuck: to me a bug is an issue. It’s not a bug it’s inefficiency unless you turn it into something else.37:42 – Jeff: N+1 is an undesirable feature? It’s not necessarily a bug. You need a very reliable caching layer.38:25 – Chuck: What is a very reliable caching layer?38:38 – Jeff answers the question.40:50 – Redis is mentioned.42:04 – Jeff (guest) comments on the panelists’ thoughts.42:37 – Picks?42:57 – Advertisement: Chuck’s E-Book Course 43:34 – PicksLinks: Get a Coder Job Course Ruby JavaScript Phoenix AppSignal Russian doll caching JavaScript Sprinkles. Cache Warming N+1 Query Redis Fragment Caching in Rails Fuubar Navvy AsciiDoc Home Page AsciiDoctor Elixir Mix – Meet Me.So New Relic Elixir Jeff Kreeftmeijer’s Website Jeff Kreeftmeijer’s Twitter Jeff Kreeftmeijer’s GitHub Jeff Kreeftmeijer’s AppSignal Blog Jeff Kreeftmeijer’s article, “Keeping open source...” Rails Bootsnap Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks:Charles Notion.so Traveller’s Gift by Andy Andrews The Shack by William Paul Young Dave Drift Ruby Episode – Renderer Tool – Scroll Saw Eric Skitch – screen capture tool – free product Library by MERT / eggplanetio by Brian Gonzalez Jeff AsciiDoctor AsciiDoc Home Page Performance in Rails – Interview Special Guest: Jeff Kreeftmeijer.
RR 378: Ruby performance: MJIT with John Hawthorn
Panel: Charles Max Wood David Richards Dave Kimura Eric Berry Special Guests: John HawthornIn this episode of Ruby Rogues, the panel talks to John Hawthorn about MJIT. John has been a Ruby programmer for about 9 years and is based in Victoria, B.C. They talk about what MJIT is, the effects you can see from using the MJIT compiler, and why the JIT doesn’t always work with other languages. They also touch on how you can use the JIT in your own code, how he makes his performance better, and more!Show Topics:1:36 – John is a Ruby programmer, and has been one for the past 9 years, and he is based out of Victoria, B.C.5:00 – He had always been curious how a JIT would work and found that it was always too difficult to work with. Since discovering MJIT, he has been able to work with these compilers because he understands how to work with C code.7:36 – Ruby has a bytecode and it looks a lot like an assembly language, which is approachable to a Rubyist.8:24 – The core of MJIT is an ERB template which take this bytecode, loops over it, and emits C code.9:01 – Effects that you can seem from the JIT in your own code is that it uses a really tight math loop, making your code faster.11:25 – Other languages aren’t suited for compilers like JIT because they are so flexible to begin with. And in some cases, it doesn’t make sense to JIT compile.13:05 – The compiled code now is not reusable by other workers and works better with one compilation per process.15:20 – The temp folder gets cleared immediately after its run, but this compiled code is probably going to stay in memory forever.17:30 – The MJIT doesn’t work as well with Rails because the code can’t get warmed up enough. Some things aren’t friendly to a JIT.20:24 – If someone wants to play with the JIT, as long as you have any Ruby version manager, install any of the previewed releases of 2.6 and then run with --jit.21:44 – Online, you can look into following people who have written various Ruby libraries to look at performance. You can look at people like Sam Saffron and Julia Evans.23:57 –TruffleRuby is a new front-end on top of a mature virtual machine whereas MJIT is a brand new virtual machine on top of a Ruby front-end.27:57 – The MJIT had no effect on his work, it was just really fun and interesting to look into.28:29 – To make his performance better, he allocates fewer objects, does less loops, and writes better queries.29:02 – You want to run a profiler that will give you a better idea of where to look for performance issues, but you really need a proper benchmark to say what is wrong with your performance. A great benchmark you can use is benchmark-ips.31:59 – The “gotcha” of doing this kind of work is verifying that you’ve actually improved it.33:41 – Before we have the JIT in production, we are going to be using these techniques to find out if the JIT is helping us.Links: Get a Coder Job Course Ruby MJIT Playing with ruby's new JIT: MJIT by John Hawthorn Rails Bootsnap Sam Saffron Julia Evans TruffleRuby benchmark-ips @jhawthorn johnhawthorn.com John’s GitHub Sponsors Sentry Digital Ocean Get a Coder Job Course Picks:Charles Iron Druid Chronicles by Kevin Hearne Zoom Notion Eric Begay Dave Sony WH-1000XM2 Ryobi Bench Sander DavidStephen Fry in AmericaEric Remote for Slides Zoom John Julia Evans Blog Posts Celeste Special Guest: John Hawthorn.
RR 377: Upgrading a Rails application incrementally with Luke Francl
Panel: Dave Kimura Eric Berry Special Guests: Luke FranclIn this episode of Ruby Rogues, the panel talks to Luke Francl about his article “Upgrading Rails applications incrementally”. Luke works at GitHub on search and has been there since October 2017. Before working at GitHub, he worked at a search startup that was working with Rails and Elasticsearch. They talk about things that people take for granted with search, the impending takeover of GitHub from Microsoft, and what open source looks like today. They also touch on the process of getting hired at GitHub, his process for upgrading Rails applications, and more!In particular, we dive pretty deep on: Luke intro Working with Rails and Elasticsearch Why he decided to come to GitHub Surreal working at GitHub What are some of the things that people take for granted with search? What people expect from search Wordpress GitHub has been very focused on the Microsoft deal recently Code Sponsor GitHub/Microsoft owns open source Open source today Kubernetes The GitHub office What was the process like of getting hired at GitHub? Build a Query Parser blog post Using his search experience Rails incremental upgrades His process of upgrading Rails applications Upgrading a Rails application incrementally Short vs long upgrading process Rails is fairly compatible between versions And much, much more! Links: Rails Elasticsearch GitHub Wordpress Code Sponsor Kubernetes Build a Query Parser Upgrading a Rails application incrementally luke.francl.org @lof Luke’s Blog Luke’s GitHub Sponsors Sentry Digital Ocean Get a Coder Job Course Picks:Dave Screenflow LED Lightbulbs EricNavicat EssentialsLukeDesigning Data-Intensive Applications by Martin KleppmannSpecial Guest: Luke Francl.
RR 376: "Ruby Performance" with Nate Berkopec
Panel: Charles Max Wood Eric Berry David Richards Special Guests: Nate BerkopecIn this episode of Ruby Rogues, the panel talks to Nate Berkopec about Ruby Performance. Nate is a freelance Ruby performance consultant and he writes and works on Ruby application performance, specifically Rails applications, which he has been doing for the past 3 or 4 years. They talk about his past experience, what led him to Ruby performance, and why he loves Turbolinks. They also touch on the two benefits to performance work, if Ruby performance on the back-end really matters for the majority of cases, and more!In particular, we dive pretty deep on: Nate intro Ruby and Rails Was on Shark Tank What led you into Ruby performance? Always enjoyed the easily quantified parts of development Performance work is very cut and dry Why do you love Turbolinks? 100ms to Glass with Rails and Turbolinks – Turbolinks article The beauty of Turbolinks The Complete Guide to Rails Performance The two benefits to performance work Making things scalable and back-end End-user experience Compiling JavaScript Does Ruby performance on the back-end really matter for the majority of cases? Making the experience feel faster Search Admin actions What would you do when you have a N+1 query problem? Finding a N+1 and fixing it on the back-end How he fixes an N+1 Bullet gem And much, much more! Links: Ruby Rails Turbolinks 100ms to Glass with Rails and Turbolinks – Turbolinks article The Complete Guide to Rails Performance JavaScript Bullet @nateberkopec nateberkopec.com Nate’s GitHub Speedshop Sponsors Sentry Digital Ocean FreshBooks Picks:Charles Golf Clubs Get a Coder Job eBook Get a Coder Job Video Course Eric Surviving the Framework Hype Cycle by Brandon Hays - talk TaylorMade M1 Driver David Every Chapter of Thinking Fast, and Slow in 7 Minutes by Conor Dewey Poem a day Nate jemalloc Queer Eye Kerbal Space Program krpc for Ruby Special Guest: Nate Berkopec.