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: https://www.spreaker.com/podcast/ruby-rogues–6102073/support.
php/*
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: https://www.spreaker.com/podcast/ruby-rogues–6102073/support.
Panel:
Panel:
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.
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.
Panel:
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.
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.
Panel:
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 pePanel:
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.