Ruby Rogues

Ruby Rogues

Download on the App Store

Ruby Rogues episodes

  • 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
    Nate
    • Share Screen using Messages on Mac
    Charles

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    1 hr 10 min
  • RR 387: Ruby Performance Profiling with Dan Mayer
    Panel: 
    - Dave Kimura
    - Charles Max Wood
    - David Richards
    Special Guest: https://www.mayerdan.com In this episode of Ruby Rogues, the panel talks with https://twitter.com/danmayer?lang=en 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 – https://sentry.io/welcome/ 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is https://twitter.com/danmayer?lang=en. 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 – https://www.jetbrains.com/ruby/ 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 https://www.rust-lang.org/en-US/ 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 – https://www.freshbooks.com End – https://www.cachefly.com Links:
    - https://devchat.tv/get-a-coder-job/
    - https://www.ruby-lang.org/en/
    - https://www.rust-lang.org/en-US/
    - http://www.rubymotion.com
    - https://rubyonrails.org
    - https://angular.io
    - https://github.com/evanphx/benchmark-ips
    - https://github.com/rbspy/rbspy
    -

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    49 min
  • RR 386: Web Console Internals with Genadi Samokovarov
    Panel: 
    - Dave Kimura
    - Charles Max Wood
    - David Richards
    Special Guest: https://twitter.com/gsamokovarov?lang=en In this episode of Ruby Rogues, the panel talks with https://twitter.com/gsamokovarov?lang=en who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at https://github.com/gsamokovarov and his mixes on https://soundcloud.com/gsamokovarov 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 http://gsamokovarov.com/resume/. Send Genadi an email or follow his https://twitter.com/gsamokovarov Show Topics:0:00 – https://sentry.io/welcome/ 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 http://sinatrarb.com...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 – https://devchat.tv/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 – https://www.freshbooks.com 41:31 – https://www.cachefly.com Links:
    - https://devchat.tv/get-a-coder-job/
    - https://www.ruby-lang.org/en/
    - http://www.rubymotion.com
    - https://rubyonrails.org
    - https://angular.io
    - https://bugs.ruby-lang.org/users/7585
    - https://libraries.io/github/gsamokovarov
    - https://balkanruby.com
    - http://partialconf.com
    - https://www.chaosgroup.com
    - https://twitter.com/gsamokovarov?lang=en
    - https://github.com/gsamokovarov
    - http://gsamokovarov.com
    Sponsors:
    - https://sentry.io/welcome/
    - https://devchat.tv/get-a-coder-job/
    - https://www.freshbooks.com
    - Cache Fly
    Picks:David
    - https://www.amazon.com/Creative-Quest-Questlove/dp/0062670557/ref=tmm_hrd_swatch_0?_encoding=UTF8&colid=VWHQF5V1539U&coliid=I3CCMFYKRBJ3EP&qid=&sr=
    - https://www.newyorker.com/magazine/2012/11/12/the-rhythm-in-everything
    Dave
    - https://www.homedepot.com/p/DEWALT-Clamp-Set-4-Piece-DWHT83196D/205418759
    - https://www.youtube.com/watch?v=HJZ9TnKrt7Q
    Charles
    - https://www.amazon.com/Diabetes-Code-Prevent-Reverse-Naturally-ebook/dp/B0795BLS8D/ref=sr_1_1?ie=UTF8&keywords=the+diabetes+code&qid=1540669361&s=books&sr=1-1
    - Keto Diet
    -

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    42 min
  • 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

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    1 hr 3 min
  • RR 384: “Sonic Pi” with Sam Aaron
    Panel: 
    - https://www.linkedin.com/in/kobaltz
    - Eric Berry
    Special Guest: Sam AaronIn this episode of Ruby Rogues, the panel talks with Sam Aaron who is the creator of https://github.com/samaaron/sonic-pi/graphs/contributors, 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 https://github.com/samaaron/sonic-pi/graphs/contributors?6:50 – Guest: https://github.com/samaaron/sonic-pi/graphs/contributors 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 https://www.ruby-lang.org/en/ but also some https://www.erlang.org in there?19:15 – Sam: I talked earlier about the three components. Sam talks in-detail about Ruby and why he also used some https://www.erlang.org.  22:30 – Sam: https://www.erlang.org 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 – https://devchat.tv/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 https://in-thread.sonic-pi.net?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: https://gist.github.com/xavriley/87ef7548039d1ee301bb 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 – https://www.freshbooks.com Links:
    - https://devchat.tv/get-a-coder-job/
    - https://www.erlang.org
    - https://www.ruby-lang.org/en/
    - http://www.rubymotion.com
    - https://rubyonrails.org
    - https://sonic-pi.net
    - https://github.com/samaaron/sonic-pi/graphs/contributors
    -

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    54 min
  • RR 383: “Rbspy: A New(ish) Ruby Profiler!” with Julia Evans
    Panel: 
    - https://twitter.com/cmaxw?lang=en
    - https://www.linkedin.com/in/kobaltz
    - 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:
    - https://devchat.tv/get-a-coder-job/
    - http://www.rubymotion.com
    - https://rubyonrails.org
    - https://github.com/tmm1/stackprof
    - https://rbspy.github.io
    - https://github.com/dejan/rails_panel
    - https://twitter.com/b0rk
    - https://jvns.ca
    - https://github.com/jvns
    - https://www.linkedin.com/in/jvans/?originalSubdomain=ca
    Sponsors:
    - https://sentry.io/welcome/
    - https://www.digitalocean.com/
    - https://devchat.tv/get-a-coder-job/
    Picks:Dave
    - https://www.amazon.com/Larin-RBV-5-5-Multi-Function-Vise/dp/B00EQ4ZUYW
    - https://www.hisense-usa.com/appliances/refrigerators-freezers/fe703
    Charles
    - https://phoenixframework.org/
    - https://vuejs.org/
    - https://devchat.tv/views-on-vue/
    - Side Projects
    -

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    50 min
  • 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 pe

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    1 hr 4 min
  • 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
    Saverio
    • Movie: The Founder
    Special Guest: Saverio Miroddi.

    Advertising Inquiries: https://redcircle.com/brands

    Privacy & Opt-Out: https://redcircle.com/privacy

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    40 min
  • 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 https://kubernetes.io.Show Topics:1:25 – https://www.teepublic.com/t-shirt/3074500-ruby-rogues?store_id=172938 1:49 – Chuck: Why are you famous?1:57 – Guest’s background.4:35 – Chuck: https://kubernetes.io – Anyone play with this?4:49 – Panelist: Yes. Funny situation, I was working with https://www.heroku.com/languages. https://www.heroku.com/languages 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 https://aws.amazon.com/eks/, which is the https://kubernetes.io. They don’t have nearly as much good tools, but that’s my experience.6:48 – Chuck: I haven’t tried https://kubernetes.io.8:58 – Rahul: I would like to add a few comments. Managing https://kubernetes.io service is not a big deal at the moment, but...11:19 – Panelist: You wouldn’t recommend people using https://kubernetes.io unless they were well versed? What is that term?11:40 – Rahul: Not anyone could use the https://kubernetes.io 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 https://kubernetes.io 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. https://kubernetes.io 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 https://kubernetes.io? 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 – https://www.digitalocean.com/ 27:51 – Chuck: How does someone get started with https://kubernetes.io?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 https://kubernetes.io 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 https://kubernetes.io 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 https://kubernetes.io 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 https://kubernetes.io – great. What kinds of processes to setup with https://kubernetes.io 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 – https://devchat.tv/get-a-coder-job/ Links:
    - https://www.teepublic.com/t-shirt/3074500-ruby-rogues?store_id=172938
    - https://devchat.tv/get-a-coder-job/
    - https://www.ruby-lang.org/en/
    - https://www.javascript.com
    - http://www.phoenixsoftware.com/ode.htm
    - https://www.heroku.com/languages
    - https://aws.amazon.com/eks/
    - https://kubernetes.io
    - https://cloud.google.com/kubernetes-engine/
    - https://kubernetes.io/docs/setup/minikube/
    - https://azure.microsoft.com/en-us/services/kubernetes-service/
    - https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
    - https://github.com/kubernetes-incubator/kubespray
    - https://www.docker.com/products/docker-enterprise
    - https://rancher.com
    - https://www.katacoda.com/courses/kubernetesby Ben Hall
    - https://allthingsdevops.bigbinary.com
    - http://nanobox.com
    - https://cloud66.com
    - https://www.chef.io
    - https://puppet.com
    - https://www.ansible.com
    - https://www.saltstack.com
    - https://www.orangecomputers.com/node/
    - https://slashrahul.in
    -

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    1 hr 2 min
  • RR 379: "Caching in Rails" with Jeff Kreeftmeijer
    Panel: 
    - Charles Max Wood
    - Dave Kimura
    - Eric Berry
    Special Guests: https://jeffkreeftmeijer.com In this episode of Ruby Rogues, the panel talks to https://jeffkreeftmeijer.com who is a Ruby and Elixir developer at https://appsignal.com. Jeff writes for the https://appsignal.com 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 & https://newrelic.com/?gclid=EAIaIQobChMIpbDg_MSz3QIVAhtpCh2qpgebEAAYASAAEgJnivD_BwE&utm_campaign=googlebrand+JM+ABM+Q1FY19+acq+NORAM&utm_medium=PS&utm_source=Google 3:40 – https://appsignal.com might be the only support for https://elixir-lang.org.4:12 – The integration, the ease was so simple and your (Jeff) documentation made it very easy.4:46 – Comparatively to New Relic, https://appsignal.com 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. https://appsignal.com – 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 https://www.driftingruby.com? 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 https://appsignal.com. 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 https://blog.appsignal.com/2018/04/03/russian-doll-caching-in-rails.html I didn’t quite make the connection in my head.11:40 – First, let’s talk about fragment caching.13:49 – Jeff explains https://blog.appsignal.com/2018/04/03/russian-doll-caching-in-rails.html 18:44 – Chuck makes comments and asks Jeff a question.19:43 – Jeff confirms the panelist’s answer.22:00 – Jeff: Another solution is https://github.com/avand/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 https://blog.appsignal.com/2018/04/03/russian-doll-caching-in-rails.html. Performance can be smoke in mirrors. Application he worked on before, we did tons of caching (query caching, https://blog.appsignal.com/2018/04/03/russian-doll-caching-in-rails.html, and others) it was all about handling the cache key.25:32 – More comments about caching from another panelist. https://www.section.io/blog/what-is-cache-warming/ is mentioned, too.26:46 – How do you utilize https://www.section.io/blog/what-is-cache-warming/?27:39 – Chuck asks a question.27:44 – Question answered.28:12 – Does something like this exist for http://www.phoenixsoftware.com/ode.htm?28:28 – Jeff: I don’t think there is something like that for http://www.phoenixsoftware.com/ode.htm.28:50 – Chuck: When do you want to use one caching over another caching?29:09 – Jeff: “Depends on a couple of things. https://blog.appsignal.com/2018/04/24/active-record-performance-the-n+1-queries-antipattern.html is a feature and that you “should” rely on https://blog.appsignal.com/2018/04/03/russian-doll-caching-in-rails.html, 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.) https://github.com/jeffkreeftmeijer/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 – https://blog.appsignal.com/2018/04/24/active-record-performance-the-n+1-queries-antipattern.html – 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: https://blog.appsignal.com/2018/04/24/active-record-performance-the-n+1-queries-antipattern.html 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 – https://redis.io is mentioned.42:04 – Jeff (guest) comments on the panelists’ thoughts.42:37 – Picks?42:57 – https://devchat.tv/get-a-coder-job/ 43:34 – PicksLinks:
    - https://devchat.tv/get-a-coder-job/
    - https://www.ruby-lang.org/en/
    - https://www.javascript.com
    - http://www.phoenixsoftware.com/ode.htm
    - https://appsignal.com
    - https://blog.appsignal.com/2018/04/03/russian-doll-caching-in-rails.html
    - https://github.com/avand/sprinkles
    - https://www.section.io/blog/what-is-cache-warming/
    - https://blog.appsignal.com/2018/04/24/active-record-performance-the-n+1-queries-antipattern.html
    - https://redis.io
    - https://blog.appsignal.com/2018/03/20/fragment-caching-in-rails.html
    - https://github.com/thekompanee/fuubar
    - https://github.com/jeffkreeftmeijer/navvy
    - http://asciidoc.org
    - https://asciidoctor.org
    - https://meetme.so/ElixirMix
    - https://newrelic.com/?gclid=EAIaIQobChMIpbDg_MSz3QIVAhtpCh2qpgebEAAYASAAEgJnivD_BwE&utm_campaign=googlebrand+JM+ABM+Q1FY19+acq+NORAM&utm_medium=PS&utm_source=Google
    - https://elixir-lang.org
    -

    Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.
    54 min

About Ruby Rogues

From the publisher's feed

Our original panel podcast, Ruby Rogues is a weekly discussion around Ruby, Rails, software development, and the community around Ruby.

Become a supporter of this podcast:

More shows like Ruby Rogues

The Bike Shed by thoughtbot

The Bike Shed

121 Listeners

Ruby Rogues by Charles M Wood

Ruby Rogues

45 Listeners

The Freelancers' Show by Charles M Wood

The Freelancers' Show

23 Listeners

Adventures in Angular by Charles M Wood

Adventures in Angular

33 Listeners

JavaScript Jabber by Charles M Wood

JavaScript Jabber

234 Listeners

iPhreaks by Charles M Wood

iPhreaks

17 Listeners

React Native Radio by Jamon Holmgren, Robin Heinze, Mazen Chami

React Native Radio

67 Listeners

Adventures in Angular by Charles M Wood

Adventures in Angular

15 Listeners

JavaScript Jabber by Charles M Wood

JavaScript Jabber

62 Listeners

My Ruby Story by Charles M Wood

My Ruby Story

0 Listeners

REWORK by 37signals

REWORK

213 Listeners

Remote Ruby by Chris Oliver, Andrew Mason, David Hill

Remote Ruby

34 Listeners

Code with Jason by Jason Swett

Code with Jason

15 Listeners