POPULARITY
Jamon Holmgren is the founder of Infinite Red, a consultancy specializing in React Native. He discusses his journey and insights into technology and leadership and highlights how Infinite Red stands as a testament that businesses can be run ethically while still achieving success. The conversation shifts to leadership styles and the principle of "one-minute praise" from the book "One Minute Manager." Both Jamon and Will agree that acknowledging others' efforts openly can make a significant difference, enhancing leadership skills and building stronger relationships. Will points out how this simple principle has been a game-changer for him in various aspects of life, including his personal relationships. Towards the end, the focus turns to motivation and long-term strategy. Jamon is driven by his enthusiasm for learning and the thrill of tackling diverse challenges in his consultancy work. He also shares his philosophy of keeping the company "10 degrees above the horizon," emphasizing steady, sustainable growth rather than erratic leaps and bounds. Infinite Red (https://infinite.red/) Follow Infinite Red on LinkedIn (https://www.linkedin.com/company/infinitered/), X (https://twitter.com/infinite_red), YouTube (https://www.youtube.com/channel/UCwpSzVt7QpLDbCnPXqR97-g), GitHub (https://github.com/infinitered), Facebook (https://www.facebook.com/infiniteredinc/), or Instagram (https://www.instagram.com/infinitered_designers/). Follow Jamon Holmgren on LinkedIn (https://www.linkedin.com/in/jamonholmgren/) or X (https://twitter.com/jamonholmgren). Visit his website at jamon.dev (https://jamon.dev/). Follow thoughtbot on X (https://twitter.com/thoughtbot) or LinkedIn (https://www.linkedin.com/company/150727/). Become a Sponsor (https://thoughtbot.com/sponsorship) of Giant Robots! Transcript: WILL: This is the Giant Robots Smashing Into Other Giant Robots podcast, where we explore the design, development, and business of great products. I'm your host, Will Larry. And with me today is Jamon Holmgren, Co-Founder and CTO of Infinite Red, a software consulting agency that specializes in React Native. Jamon, thank you for joining me. JAMON: Yeah. Thanks for having me. I really appreciate it. WILL: So, Jamon, what's going on in your life? How's everything going? JAMON: You know, things have been obviously very busy, like, I guess, pretty much everybody. You know, school has started. I have four kids, so that keeps me quite busy, going to various school events, going to volleyball, you know, bringing kids here and there, running the company. I have some side projects I'm doing. I am playing hockey. So, it just seems like every waking hour is filled with something. [laughter] WILL: I totally understand that. I have three kids of my own. So, they're a little bit younger than yours, so mine is 4, 3, and, like, 17 months, so... JAMON: Okay. Yeah, so you're just getting started. And you're doing all of the, like, physical labor associated with being a parent. WILL: Yes, yes, yes. So, I want to start there. Tell me a little bit about your kids. I know their ages are 10 to 18. JAMON: Yeah, so I have a boy, Cedric. He's actually a programmer as well. He's just starting his career. He is the oldest, and then we have three girls. We have a 15-year-old who's a sophomore in high school. And then we have a 12-year-old who's in middle school and a 10-year-old who is in fifth grade in elementary school. And it's a lot. My wife and I both came from very large families, so we're kind of used to it. And it's a lot of fun. A lot of challenges at this age, I mean, teenagers especially, you know, as they kind of all come into that same era, you know, it's more of a challenge. I guess the thing that I think about it is a lot of the skills that I learned as a young kid parent don't really translate super well to being a teenager parent. And I'm having to learn a lot of new skills. And I actually talked to a guy the other day. His kids are, I think, 32 and 28, or something like that. And he said, "Yeah, the learning never stops." [laughs] WILL: So, I'm going to ask you for the secret sauce because I'm still in the temper tantrums and those type of emotions and stuff. So, how is it different in the teenage years from the temper tantrums? JAMON: Well, I think that they can act like adults in a lot of cases, and you start thinking of them as adults, and you start developing a relationship there. But their brains are also not fully developed. And so, they will also do things that are very inexplicable, like, you'll just be like, why? Why would this be a thing? Like, I don't get it. Like, you act like an adult for half the time, and then the other half, you act like a kid. Navigating that, and the fact that they change all the time, and all the other challenges. And they're all different. Like, if we had only had one kid, you know, my boy was pretty easy. He was pretty straightforward. It would have been like, well, shoot, being a parent is pretty easy. Like, I don't know what everybody else is complaining about. Like, he never did tantrums. He was just a really quiet, you know, like, well-behaved kid and kind of went through life like that. But then, obviously, developing a relationship with him is more of the challenge because he's quieter, where with my girls, it's easier to develop the relationship, but then you [laughs] deal with a lot more volatility as well. So, they're all different. Every kid's different. It's hard to really apply that directly. I would say that the thing that I've learned the most in the last few years is just kind of continuing to be, like, even through some of the tougher times, continuing to be there, continuing to develop that relationship. A lot of times, it feels like you're not getting anywhere, but you are. It is actually happening. You just don't see it until later. WILL: I'm writing that down. That's great advice [laughter]. You mentioned hockey. Tell me about it. I've never played hockey. I grew up in the South, so we didn't have that. So, tell me about it. And you're a goalie also, correct? JAMON: Yeah, I play goalie. I didn't discover hockey...I played basketball in high school. I played four years of high school basketball. I even played a little bit at college. And I didn't really discover hockey until I moved to Southwest Washington, about an hour away from where I grew up in the coast of Oregon. When I got there, a lot of my friends that I made were playing hockey. And one friend, in particular, he was a goalie, and he had grown up in Upper Michigan. So, you know, like, he grew up playing hockey. He was a very good skater and things like that. But there was one weekend I was coming to watch him play just rec hockey. And he's like, "You know what? I can't make it. Would you want to jump in and, like, be my sub?" And it was just a pick-up game. So, it wasn't like there was anything on the line. And I was like, "All right, I'll give it a try." You know, put on the gear. He showed me what to do to put on the gear. He kind of gave me some tips. Like, in the living room where we were, he was, like, showing me how to play. We were, like, I would say, 19, I think. Nineteen years old, something like that. Anyway, I show up, and I put on the gear, and I go out there. And I actually had a decent game, considering I barely knew how to skate and barely knew how to do anything. But I'm kind of big; I'm six foot four, almost six foot five. And having all that gear and everything, I filled up a lot of the net. And it wasn't a very high-level game, so I did pretty well. And after that, the team was like, "Well, we'd love to have you back." And then my friend really was not interested in continuing, so he was like, "You can have it, like, just roll with it." I kept playing for about three years, and then, I don't know, I took over a decade off. The team dissolved. It wasn't even a league team. It was just, you know, pick-up hockey. And then a friend called me and was like, "Hey, I'm starting up a game. It's going to be Finnish Americans," because I'm half-Finnish myself. "So, it's going to be all Finnish Americans. We're going to call it the [Foreign language]," which is the Finnish boys in sort of Finnish. It's not exactly supposed to be like that in Finnish. Anybody listening who's Finnish is going to be like, "Yeah, that's bad Finnish." But it kind of means Finnish boys or Finland boys. And we put together the team, and I've been playing for the last three-plus years. It's been kind of, like, a rec league team. We've won the championship four times, which was really fun. This year, I'm actually playing in two leagues. I'm playing in rec league, and I'm also playing the next league up, so a little bit faster, better skaters, better shooters, things like that. And I just love it. It's so much fun. WILL: Wow, that's amazing that you started later and that you're still playing it. Because when I look at hockey, I'm like, that's really hard. I don't know if I could do that. I can skate. I can't stop. JAMON: [laughs] WILL: Like, I can get a lot of speed [laughs]. But it's just something about turning sideways and thinking I'm going to fly over the skates. JAMON: [laughs] WILL: And yeah, it's a whole thing [laughs]. Is goalie harder than playing any of the other positions? JAMON: I would say it's different. Like, I don't have to be as good of a skater, you know, things like hockey stops are still not supernatural for me. I don't skate backwards super-fast. You know, I'm not a fast skater in general. But the difference is, of course, you have to be reading the flow of the game. You have to know the body language of the players that are coming at you. You have to kind of see what's happening. At the end of the day, lots of things can happen, so you try to put yourself in the best position. It's a lot of, like, positional, like, where are you in the net? What does your position look like? And then, once they shoot, how do you react? Are you dropping down, or are you staying up? Are you using your glove? Are you using your blocker? Are you just trying to block with your body using your stick? Then, once the puck hits you, then what do you do? How do you control the rebound? Are you trying to cover it up and ice the puck so they do a face-off? Are you trying to kick it out to one of your skaters? And then, once that happens, you have a little bit of a rest, hopefully, while they're down on the other side. But you're continually alert and watching to see what's going to develop because it could be a breakaway. And then it's just you and the skater and trying to anticipate what they're doing and try to make it so that they have to make a play. Like, just be big, be in position. Don't get out of position. Don't make a mistake. And I've had really great games where I've, you know, had 45 shots on me, and I've only let one in or something like that. And I've had some bad games too. I know there's one game in a championship where they only had six shots on me. But we ended up losing because I let in two, so that was not a fun game. I only had six opportunities, and I failed on two of them. But that happens, and so you just have to be mentally tough. WILL: Wow, that's amazing. The limited knowledge of hockey...I'm going to assume here, so I hope it's right. With you being 6'4, 6'5, I'm guessing that the five-hole, if I'm correct, was probably your toughest position to defend. JAMON: You know, you would think so. And just for the audience, the five-hole is, like, between your legs, you know, the puck going between your legs underneath. But I play a style...a little bit older style of goalie because that's what I watched. You know, in, like, the early 2000s, I watched Patrick Roy of the Colorado Avalanche, one of the greatest goalies of all time, and he played what's called a butterfly style. So, as the play develops, you're standing, but then you go down fairly early, and you're protecting the bottom. You have your stick in front of you protecting the five-hole, and you have your legs, you know, spread out. So, I used my height really more for blocking as I'm down rather than standing because when I'm standing, I'm above the net. It's better for me to get down. And I think that that's worked out pretty well. You know, Patrick Roy was a pretty big goalie as well. Most modern goalies play a more hybrid style. But, you know, we could get into all that. I'm a big kind of hockey nerd in this way. But that's what I do. I play butterfly, so most of the time, people don't beat me five-hole; when they do, it's usually they're picking a corner. WILL: Wow. Now that you've painted the picture, I can see how that's smart because you do have the goal, I mean, the gloves plus the stick and then your height. Yeah, I can see how...that's smart. That's very smart [laughs]. JAMON: Yeah, that's right. Yeah, that's kind of the goal. And also, because I wasn't a great skater, it sort of played into it as well, playing down on the ice where I was just more comfortable that way. It's worked out. I've had a pretty decent record over my career here [laughs]. WILL: That's awesome. Well, let's transition a little bit into consultant agencies. You've been doing it for 18 years. Tell me about that. How did you get started? JAMON: Well, when I started, I was working in construction. I was working for a home builder. And, you know, everybody I knew pretty much worked in construction, including my dad, who owned a business. And I went on my own. I had always dreamed of owning my own business, but I didn't start really thinking about websites. I was coding. I loved coding, and I was coding since I was 12. So, when I got to 23 years old, I thought, I'll start a business, and I'll do home design because that's what I was doing for the builder was, I was drawing homes. I was designing homes and remodels and things like that. And so, I started it doing that. But I also needed a little bit extra work. I didn't have enough work. Like, I had people, you know, sending me work, you know, home design and whatnot, but I didn't have quite enough. So, I would also build websites on the side, PHP and HTML, MySQL, and JavaScript. And I just sort of continued to do that. But in 2008, there was the housing crisis, and all of the design work for homes just dried up. There wasn't much there. In fact, it actually really dried up in 2007 because things kind of started a little early for designers. And so, I was like; I got to do something to stay busy. I've got a wife. I've got a young kid (Actually, at that point, I had two kids.), and I need to make sure that I'm staying busy. And so, I really ramped up trying to find work, you know, as a programmer, as a web developer. And there were plenty of companies at that time that were really trying to drum up business. So, they were putting money into their websites trying to get new projects, and they were all construction companies. And so, that's how I started. And I started doing more things like internal web apps for managing orders and managing sales leads, and that sort of thing. And that led me into web apps and eventually to Ruby on Rails, which became sort of my bread and butter for a while. As I was doing Ruby on Rails, you know, obviously, the iPhone was out, but the iPad came out. And I was more of an Android guy at that point. But I bought an iPad because it looked really cool, and my dad had one. When I started playing around with it, I'm like, I need to build apps for this. This is super cool. So, I took some Stanford courses online, which you could do back in those days, iTunes U, and learned how to use Objective-C. This was previous to Automatic Reference Counting and stuff. So, you had to manage your own memory, and this was a lot of manual work; very different environment than JavaScript, and PHP, and Ruby. But I actually enjoyed it quite a bit and then eventually transitioned into React Native later. But really, getting over to mobile and that sort of thing was...once I found mobile, I really didn't want to do web anymore. Mobile is what I really enjoy doing. WILL: Wow, I love that. If I'm following you correctly, you said in 2007, that's kind of when everything dried up. So, you were almost forced to find something different, correct? JAMON: Yeah, that's right. I mean, I kind of sat around feeling sorry for myself for a while. And then I was like, well, it's my business. I got to figure out what to do. It's not anybody else's fault. Like, you know, it doesn't matter that this is forces out of my control. I do have control. I have the ability to go in there and figure out, okay, what do I do next? Well, I know how to program, and it seems like people want me to program. So, let's lean into that. WILL: Wow. I love that. Because it's funny, that's how I got started in programming. I lost my job. And I was working at Buckle, the clothing store. If you know me, that is not me at all, like, at all [laughter]. I love gym shorts and athletic clothes. Like, fashion is not my thing. It's just not. So [laughs], I got into programming because I was just struggling. And it was a very pivotal moment in my life. And I'm thankful that I lost my job. Losing your job is just hard, and I think it makes you rethink things. JAMON: Yeah, absolutely. It was a growth moment for me as well, one of many. But that was definitely a point that I look back on and say, I mean because I can actually point at almost the day when it all dried up. It was, like, April 2007. And my uncle had been sending me a lot of work, you know, he had extra work. He didn't have barely enough for himself anymore at that point. And I finished up my last project, and he's like, "I don't have anything else." And I had some other clients as well and called them up, and they were like, "No, we don't have anything. Like, nobody is buying right now." And it just kept going like that. And it was weird because 2005, 2006, most of 2007, it felt like things were really rolling, but it just dried up all at once. And so, I was really lucky that I did end up getting a bunch of web work to do in 2008. I was still doing home design till probably late 2008, 2009. But then I eventually just hung that up and was like, okay, this is over. I'm definitely focusing on programming. WILL: Wow, how was the initial traction when you moved into ramping up the web development? JAMON: It was really good because it didn't take much to keep me busy. And I ended up getting some big contracts from, like, a cabinet manufacturer was a big one. I did some other things as well. And I ended up hiring my first employees in 2009. So, really, less than two years later, I was starting to hire employees. And I just hired, like, junior developers who had barely learned to code and taught them to code. So, I hired probably, over the years, next few years, like, ten programmers, many of whom are actually still with me today, and I taught them to code back in the day. And as time went on, they became senior and really high-level programmers who are now leading projects for big companies that you've heard of. But they started with me building, you know, PHP and MySQL and whatnot for small, like, regional construction companies. And we learned together. So, it was definitely a progression you can go look back and see. WILL: Yeah, I saw a tweet that you tweeted, and I loved it because I totally understand. JAMON: [laughs] WILL: And so, I'm glad you mentioned the junior devs and stuff. The tweet that I'm talking about was, "I got into this industry to code; ended up becoming a founder because I was the only person who would hire me." JAMON: [laughs] WILL: I want to ask you about that. [laughter] JAMON: Yeah, it's really that I grew up in a small logging town, like, very tiny logging town in Northwest Oregon. I didn't know...I knew one programmer, and the guy was, like, an incredible genius. And I just thought that that was the only way that you could professionally be a programmer was to be an incredible genius. I was coding, but I was, like, coding games, you know, in QBasic. And so, for me, every time I looked around, it was just, like, construction, or logging or, you know, blue collar, like, working at a mill. Like, these were the things that I saw around me. And so, that was the path I went. And I didn't really think of using this passion that I had for coding to turn it into, like, actual money. And when I did start thinking about it, I was like, I don't know anybody who does software. Like, even when I moved to Southwest Washington, I was closer to Portland. But I thought you had to have a CS degree, and I didn't have a CS degree. So, I was like, okay, well, I'll start my own business then, and that will be the thing that kind of leads me into tech. And that's what ended up happening. And it's kind of funny because I did go to, you know, one semester of community college for basketball and for...until I got cut. And then I studied some things there. But I never finished for the community college. What's kind of cool, though, is today, I'm actually on their, like, tech advisory committee. Like, they actually have me advising their professors on the current state of tech, which is kind of cool. WILL: Wow, that is really cool. It is interesting because I remember when I first started out and that feeling of probably over 300 applications just trying to get a job. And it was just hard. And my first job, to be honest, I think it was because of networking is why I got the job. If I didn't know the person that introduced me to the company, I probably wouldn't have gotten the job, if I'm being honest. But I am very sympathetic for junior devs anytime. If a junior dev asks me a question, I will take time, help them out. Because I remember...it's very hard as a junior dev trying to get that first job. So, when you said that, I was like, yeah, I can see your heart towards junior devs. JAMON: Absolutely. That's where I started. You know, the first developers that I hired were all juniors. We don't hire juniors anymore because of the style of business that we are. But I miss that. I miss that to some degree. We really can't. And we've looked at it from just about every angle. But I did my time [laughs]. I spent a lot of hours teaching junior developers when I could have done it quicker myself. WILL: Definitely. Like, you end up losing some money when you do a junior dev and you're hiring for the future. So, like, in a consultant agency, I totally understand that, yeah. JAMON: Yeah, absolutely. MID-ROLL AD: Now that you have funding, it's time to design, build, and ship the most impactful MVP that wows customers now and can scale in the future. thoughtbot Liftoff brings you the most reliable cross-functional team of product experts to mitigate risk and set you up for long-term success. As your trusted, experienced technical partner, we'll help launch your new product and guide you into a future-forward business that takes advantage of today's new technologies and agile best practices. Make the right decisions for tomorrow today. Get in touch at thoughtbot.com/liftoff. WILL: So, I want to ask you about the transition from ClearSight Studio to Infinite Red. How did that happen? JAMON: ClearSight was my first company. And it sort of evolved from being a, you know, a home design/website company to just a website and web app company, and then mobile apps. And, at a certain time, we had, I think, around 12 employees, something like that. I had a design department. We were building websites and whatnot. And I was really interested in iOS development. That was really my passion. And so I actually ended up working on some open source with iOS developers across the globe and then got invited to a conference down in San Francisco in 2014. And I went and gave a talk there. It was my first tech conference that I'd ever been to, much less given a talk, and I was the first talk [laughs]. So, that was kind of an interesting little anecdote there. And as I did it, I got to know some other developers. I had one in particular, Todd Werth, who I really hit it off with, and we ended up chatting a lot after the conference. And it felt like he and I had a very similar outlook. And he had an iOS agency. That's all they did. Well, 2015 rolls around, and I had had some rough times toward the end of 2014 in terms of the business, and I was kind of complaining to Todd. He had had some issues as well, and we started commiserating. And he's like, you know, he just started joking. I still have this conversation in Slack way back if I go look. And he's like, "Well, maybe we should just merge our businesses together," because it felt like we had maybe complementary skills. And we had a similar outlook on what we wanted from our businesses. And so, we ended up eventually solidifying that. I flew down there, talked to him and his business partner, Ken, at the time. We ended up making that happen later that year. So, just a few days ago, October 1st was our eighth anniversary running the companies, running the new company, the merged company, which is Infinite Red. So, that was kind of how that all came together. Eventually, Ken left, and we had a new business partner who was our top employee buy-in; that's Gant Laborde. And so, there are still three owners. We have three directors and then the rest of the team. We're about 30 people altogether, and we focus entirely on React Native. WILL: Wow, congratulations on eight years. That's a lot. That's amazing. JAMON: Yeah, thank you. I was just thinking the other day that I ran ClearSight for ten years. Infinite Red is getting close to how long I ran my first business. And, like, my youngest is, like I said, 10. So she was only two years old when I merged the company. She does not remember my old company, which is weird to me. [laughter] WILL: Wow. So, can you walk me through your decision to go here with React Native and specialize in that? Because it sounds like right around the time when React Native was created, and people started using it in production. JAMON: That's right. The iOS technology that we had sort of bonded over at that conference was called RubyMotion. But in 2015, the founder ended up going to work for Microsoft for a while and then went back to Apple. He had been from Apple before. So, it was sort of going down. And we were looking for a different technology, both of our companies were, and then, of course, the merged company. React Native looked interesting, but it didn't have an Android version yet. But then, in September of 2015, Android came out, so it was iOS and Android. So, we were able to take a look at that one month before we ended up solidifying the actual merger. So, basically, day one, October 1st, 2015, we were, like, we are now doing React Native for mobile, but we kept doing web. We kept doing Ruby on Rails. We did some Elixir. We did some Elm. We did some...I think we had some old Ember stuff going on. We had all kinds of things going on. But over time, we got more and more traction with React Native because that's really where our interest was. And so, we ended up saying, okay, well, this is where we really want to be. It took us a few years. It took us probably five years, six years, something like that, to really develop the confidence to say, "Hey, this is all we want to do," because it's a risk. Like, you put yourself on one technology. We had that before with the other technology that went down. But we had the confidence that we knew we could step off of a sinking ship onto another one if we needed to. So, we said, "You know what? Let's do this." And I got to give my co-founder, Todd, a lot of credit because he was the first one to say, "Let's go all React Native. Anywhere that React Native is, React Native is on a lot of different platforms. You can do tvOS. You can do Mac. You can do Windows. You can do web with React Native web, all kinds of things. So, let's just focus on React Native. Our team will just focus on that. We will only hire React Native developers. All of our marketing is going to be around React Native. Let's just focus on that." And it ended up being a great call. We did that. We made that happen. And for probably the last, I would say, three, four years, something like that, that's all we've been doing. WILL: So, what's your opinion on, I guess, the argument that's being held right now with native iOS and Android, even the Flutter, and I think Ionic is the other one that I've heard of, versus React Native? What's your pitch on React Native over those? JAMON: There's definitely reasons to use any of those. But I wrote this article a while back. It was specifically about Flutter, but I think it applies to a lot of the other competitors as well. The title of the article was provocatively titled, "Flutter Is Better Than React Native in All the Ways That Don't Matter." And the idea behind this is that, yes, Flutter gets a lot of things very right. A lot of their developer experience is actually better than React Native; some is worse, but, you know, some is better. But really, when it comes down to it, the things that matter are more business level. React Native is good enough. It's like native views. So, you have the native performance. With Hermes, you have really good performance in JavaScript. So, you know that you can get really high-level JavaScript performance. You can ship JavaScript, which really helps because then you can bring in JavaScript developers, and specifically React developers. So, a lot of companies already use React. It's a no-brainer to then use React Native if you're already using React Web. It doesn't really make sense to go to Flutter. It makes maybe some sense to write it in native, but then you have to write it twice. And you have three teams. You have a web team. You have an iOS team, and you have an Android team. And you also have three codebases, and one's always lagging behind. That's always what's happening. Marketing is like, "Okay, when can we announce this?" "Well, iOS isn't done," or "Android is not done," or "Web is not done." Where if you can combine all of those things and combine just the culture of your team, then it becomes more tight-knit because everybody's working on all aspects at one time. You can take a feature, and you can build it in web, and you can build it in iOS, and you can build it Android with all the same skills. Now, there are some deeper parts of React Native. It goes really deep. But in terms of just being productive out of the gate, a React developer can be productive in week one, and that's, I think, a huge deal. So, it really comes down to is the performance and developer experience good enough? And the answer is absolutely yes. And then, secondly, like, what's the business case for React Native? Well, you can have the same developers doing iOS, Android, and web, and even if you don't, you can share techniques. You can be like, "Hey, here's this cool JavaScript thing," and the Kotlin developers aren't just like, "Ugh, you know, JavaScript." Or you can be like, "Hey, here's our TypeScript configuration across the whole codebase." You can even have a monorepo with everything in it. It just makes a lot of sense that way. And especially now with Expo, it makes it even more that way because Expo removes a lot of the barriers for web developers that they would have coming into native. So, with that in mind, I still see React Native dominating the apps that are at the top of the App Store. One of the Expo developers, Evan Bacon, has put out a bunch of tweets about, you know, like, 24 out of the top 100 food and drink apps are written in React Native, as opposed to 8 in all the other options combined other than native, you know. So, it gives a good sense that React Native is still growing and continuing to. It has a lot of steam behind it. WILL: Yeah, I totally agree with you. I'm a big React Native fan, and I do a lot of React Native work here. So, yes, totally agree with you. And one of the most frustrating things that I've come across is, I'm a big researcher, and so I'll research things, and I'm like, oh, there's an app for this. And I'm a big Android fan, so when I go to them, it's like, oh yes, I can use this app. And then it's like, no, I can't. It's only for iOS. Okay, like, you lost me as a customer. JAMON: [laughs] WILL: I was willing to pay whatever on this because I've been looking for it. So yeah, I like how you said that. JAMON: Yeah. It treats all of the platforms as first-class citizens. WILL: Yes. Yes, yes, yes. Totally agree. How does your company handle the backend? Do y'all do any of the backend, or how is that handled at Infinite Red? JAMON: We used to do that, like I mentioned. But a few years ago...we had a very, very small back-end team by then. Most of the time, and now pretty much 100% of the time, when someone comes to us, they already have a back-end team, so we work directly with them. A lot of our developers were back-end developers, and so they understand the backend really well, but they're obviously React Native specialists now. So, you know, I came from that. I did PHP. I did Ruby, Ruby on Rails, Elixir, Node, all kinds of back-end technology. So, I understand it really well as well. But yeah, we lean on our clients for that. We might partner with an agency like you folks over there at thoughtbot and have them do the backend, or just have the client, you know, come up with their own solution. WILL: Yeah, I love that, yeah. And we've done that with numerous agencies, so yeah, that's awesome. What does success look like for Infinite Red now versus, you know, six months or five years from now? Do y'all have any goals in mind that you're trying to hit? JAMON: In the Infinite Red leadership, we are currently reading John Maxwell's 21 indisputable Laws of Leadership, which is a good book. And we had this really great conversation at our first book club meeting in leadership, which John Maxwell defines success in a very different way than we do. You know, he measured it as, like, McDonald's, or Starbucks, or something like that, like, giant, becoming huge, becoming big, making tons of money. And it was sort of just implicit in the book that that was the case. We had this great talk internally. Why didn't this resonate with us? And that's because we don't really measure success that way. So, I love that question, Will, because measuring success is you really have to start there. Like, you have to start there and say, "What do we want from this?" So, ultimately, we want to build cool things with our friends. I'm a coding nerd. I want to code. I want to be in the code. That's why we're an agency. Like, if we were a product company, if we were building, I don't know, podcasting software or something, we'd have to become experts in podcasting rather than experts in React Native, or experts in TypeScript, or whatever we want to do. So, we really love code. We want to build that. We want to have an amazing family-first environment. We want to treat everybody super well. We want to have really low turnover, which we've been able to achieve. Hardly anybody leaves Infinite Red. Maybe every other year, we might lose one person. And even with those people, they tend to come back [laughs], which is a great sign. They go out and find out that, yeah, actually, Infinite Red is pretty awesome, and they come back. So, we really look for that. We really focus on that. We want that to happen. And it's really less about making the most money we can. Obviously, everybody wants to be well paid. And so, we're going to try to make sure we have a successful business in that way and that we want to be around for a long time. But, really, measuring success is less about business success and it's more about life success. It's really more about family success, being with my four kids, being there for them when they need me to be. That's why we're remote, you know, as another example. So, everything really hinges off of that. It's around happiness. It's around fulfillment. It's not around financial success. WILL: I'm a huge John Maxwell fan, by the way. JAMON: [laughs] There you go. WILL: So, yes, I love it. And I love how you explained, you know, because one of my questions I was going to ask you is about the core values, but I'm going to switch it up a little bit. So, I'm just going to say, in my opinion, I feel like there's almost leadership talk void at times, especially in the tech space. Like, we don't talk about leadership a lot. But it plays a huge part in what we do day to day. Like, you named a couple of core values and principles that you're following because of the leadership. So, for you, why is the leadership so important and I guess you can say have a seat at the table at Infinite Red? JAMON: I'm a strong believer, and I've become more of a strong believer over time, that it all starts at the top. If you don't have buy-in from your top leadership, it does not really matter what happens otherwise because they will continually undermine, and they have the power to continually undermine that. So, these core values have to apply to the top leaders. They have to be held accountable to that. And these leaders also need to be developed. So, we have three owners. We have three directors. And the three directors who are underneath us were not directors when we hired them; you know, they started out as developers. They started out as designers. They started out as project managers. But they became Director of Operations, Director of Engineering, Director of Communications. And we developed them. We poured a lot of time into them, and we continue to do that. In fact, even reading this book with them and going through that exercise is continuing to invest in them. Not that we as owners don't have growth to do; we also do. And so, we learn from them, and we learn from our team. So, you have to start there. And on that same vein, we do have some core values. We call them our foundation and our pillars. We have three foundational things, and we have four pillars. So, the three foundations are: one, we control our own destiny. We are not going to be beholden to some other company. We're not going to ride someone else's coattails. We're not going to be in a situation where someone else can kill us. And it can be easily done that way where we're in a position where, you know, we're too reliant on one whale client or something like that. We just won't do it. The second foundational thing is that we have...it's a word bonitas, which means kindness, friendliness, benevolence, blamelessness. And it's basically just being a good person to everybody and doing the right thing. And the third one is having a significant positive impact. That's why we do so much media. That's why we try to have an impact outside. And we're only 30 people, but people think we're way bigger because of how we kind of present ourselves in the world. And then our pillars all support those things, so high personal support. We support each other. We have high expectations, but we also support each other not just at work but also as a whole person. Long-term viewpoint, we think way beyond this year. We think about what is Infinite Red going to be when I retire? You know, I'm 41; that's a ways out, hopefully. But what's that going to look like? The next one is collaborative creativity. Creativity by yourself is just a solo thing. We're a team, so it has to be collaborative. We have to do it together. All our creative work, whether it's our conference, Chain React, or our work, it's all collaborative, and we love being creative. And the last thing is being pioneers, pioneering spirit. We like to be pioneers in technology. We put out a lot of open source. And we try to bring that pioneering spirit everywhere we go. And then, there's a lot of different things that kind of come out of that. For example, we have this internal saying, which is, "Don't do hard things alone." So, you have a hard thing coming up? And it could be hard in various ways. It could be a technically challenging thing. It could just be hard because of the mood you're in that day. But don't do it alone. Ask someone to help you, you know, jump in with you, pair with you. Do it together. And we love that. That's part of the high personal support and the bonitas. So, all these things come out of the foundation and pillars that we have. WILL: Wow, I love all those. I want to pick one of them out and ask you a question around it. So, you're talking about having an impact. I'm loving this conversation just talking to you. It's just been amazing. So, for you, what do you want the impact on the world to be from your perspective? JAMON: That's a hard question to answer, and it tends to be something that I think about a lot. I'm more of an opportunistic person. I react more than I plan ahead, that sort of thing. But with that said, I think that we have had significant positive impact through a lot of different ways. So, on Twitter, for example, I try to present a...and this is authentically who I am. But I try to present a positive force out there, someone who's excited and enthusiastic about the technology, who supports other people, even who you might consider competitors, for example. I just retweeted recently a Callstack thing. I mean, you might consider them a competitor. They're another React Native agency. But I love Callstack. They're great people. And I retweeted one of their really amazing resources, which is the ultimate guide to React Native performance, which, by the way, is really good. And if you do React Native, you should check it out. So, I think what goes around comes around, and I really want to have that positive impact out there. I want to give talks that inspire people. You know, I'm a nerd, and I'm going to nerd out about stuff. And I feel like that has an impact all of its own. So, that's kind of my personal side of it. And then Infinite Red is a showcase that you can run a company the right way. You can treat people the right way. And the company can be successful along our own metrics of success. WILL: So, one of my biggest principles that I've learned in life that's changed my leadership 100,000% is from this book called One Minute Manager. And I think it's called one-minute praise. And, essentially, the background behind it is, if you think something, just tell the person because so many times...and I get in my head, and I think amazing things about people, but I never say it. JAMON: [laughs] WILL: So, I want to just tell you, like, you said, the impact that you're making. You are doing that. Like, one of the reasons why I invited you on the show was because of your impact that I see that you're having on Twitter and LinkedIn and just everything that you're doing at Infinite Red. So, keep going. I want you to know that you are making a difference. I see you, and it's making a big difference in my life. JAMON: I love that, and it makes me feel great. And I appreciate you sharing that one-minute praise there. It is something that sometimes you put it out there, and you don't really know what the impact is, you know, it's sort of hidden in maybe the likes, or the replies, or whatever. As an example, I just reached out to my friend Aaron Francis last night, and I told him, "Hey, I love your videos." I don't even do the tech that he does. But I watch his videos on YouTube because I just love the vibe that he has. And I told him that. I was like, "You're doing a great job. You're being a very good advocate for your company." And I agree with you; I think that just taking the moment to reach out and say, "Hey, I think you're doing good work," it encourages people to do more of it. So, I appreciate it a lot, Will. That's really nice of you to say. WILL: Yeah, definitely. If you can go back, what is some advice that you would give yourself? We could do both at the beginning when you did ClearSight and whenever you merged and did Infinite Red. Was there any advice that you're like, wow, I learned these lessons, and they were game changers for me? JAMON: [laughs] Boy, this could be a whole nother podcast, to be honest. There are so many different things that I've kind of learned over the years. I feel like, you know, there's value in, you know, there was actually...I forget exactly where I heard this, but it was about Cloudflare, the company. And a long time ago, as they were sort of launching, one of the people that worked on the...I think it was their founder, actually. One of their investors told him, "Hey, running a company is sort of like flying an airplane. You want to make sure that it's well-maintained at all times. And then, when you're flying, you keep the wheel steady and the nose 10 degrees above the horizon so you continue to rise. And you don't need to shoot for the moon. We're not a rocket here. Just continue to execute well, make sure that it's well maintained, make sure that you're continually rising." And Cloudflare is a good example of this, and I think that Infinite Red is as well. Every year, we try to do something where we're continuing to keep that nose 10% above the horizon. That doesn't always mean growing. Like, we don't hire all that often. We don't grow in terms of headcount, but we grow in other ways. And you can see that looking back over the years. Every year, there was something that we continued to, you know, improve, keeping that nose 10 degrees above the horizon. And so, that's a big one. And you can just go do all the little things really well and continue to think long term and where are you headed. And if you do the right things long enough, good things happen. WILL: I love that because, especially when I'm working out, I try to shoot for the moon. JAMON: [laughs] WILL: I go all out. So, that was some amazing advice. I don't even remember who told me, but when I first started programming, I tried to shoot for the moon. And, oh, I crashed and burned so many times [laughs] because it's just something you can't just master it, and just like, I got it, da da da. And I love that advice. That's amazing advice. So, that's perfect. JAMON: Yeah, it really stuck with me, and I have so many more lessons. I have actually kept a notebook of profound things that I've heard over the years, and I actually really enjoy that minute praising you said. And I'm going to look up the quote after this, and I'm going to put it in my notebook. [laughter] WILL: Yeah, yeah. It's been a game-changer because I'm a very straightforward person. And so, a lot of times, like, I don't mind addressing an issue just head-on. But what I found is I'm just always doing that. And I never had equity in the bank at times. This is when I was a very young leader. I didn't have equity. And so, it was just hard to tell people, "Hey, can we tweak this? Can we do that?" And then I had to sit back and say, okay, what can I change to be a better leader? And it's like, I can connect better. And I see so many things. Like, I'm very observant, I think. To be honest, it's helped me in every area, even with my spouse, with my kids, with friends. It's just saying, "Hey, I see what you did. I see that you made breakfast." Or "My kids, I see that you made this beautiful mud pie for me. And it's amazing. So, thank you. Thank you." And so, yeah, it's been a game changer for me. JAMON: Yeah, one of my friends, his goal was...and he's a leader. And he said that his goal with everyone on one was to give them one thing to change and highlight one thing they did well like you said, equity in the bank. He was talking about when he was a leader of, like, a call bank. And he said, "No matter how bad the call was, I wouldn't give them more than two things to improve because there was no way that they could take ten critiques and improve. They would just be defeated." And then, he would review and see if they could improve one more thing, avoided negative language, things like that. So, that's a really interesting concept. WILL: Yeah, definitely, definitely. So, I have one other question for you. What motivates you? What's your wind in your sails? What keeps you going? Because I know running a consultant agency is not easy. What keeps you going? JAMON: For me, motivation tends to be enthusiasm for learning, really more than anything, like going into something new and, like, exploring. I see it more as exploring even than learning. With a consultancy, there's always so many different...it's never the same, you know, there's always some other challenge. And that's one of the reasons I've loved being, you know, a consultancy owner for so many years. You're never dealing with just the same stuff over and over. So, I would say it's really about the exploration that happens, and just loving code, and talking shop, and being around great people. To me, that continues to motivate me. WILL: I love that. Do you have anything that you would like to promote — personally, Infinite Red, anything? JAMON: Well, Infinite Red, of course. If you're looking for React Native, we are all senior-level React Native developers. We've been working together for a long time. So, big companies, the biggest ones you can think of, many of them have hired us to, you know, be the experts with their team. We usually put 2 or 3 people on a project, and then the client will come in with 2 to 10 people or whatever they have on their side. And we work with them side by side, teaching them as well as delivering code. So, that's really our bread and butter. We also put on the biggest and, I think, only U.S.-based React Native conference, and it's called Chain React. It's in Portland. Next year, it's going to be in July. So, go check it out: chainreactconf.com. We'd love to see you all there. I'd love to see you there, Will. And network with all these different React Native developers. There's people from Meta, and Microsoft, Amazon, all over the world, really. And they're some of the best React Native programmers you're going to ever meet, and some great talks, and great food, and a great city. WILL: Yeah, I would love to be there. Let me ask you this: how is Portland in July? JAMON: Portland is amazing in July. Sometimes, it can get hot, but for the most part, it's just beautiful. It'll be like 85 degrees, not really any humidity, nice, little breeze. It's just a beautiful weather pattern around Julyish. That's why we chose that time of year. So, definitely, if you're going to be coming to Oregon, Portland, you know, West Coast, July is a great time to come. It's not going to be super, super hot, usually. Sometimes, I mean, we get over 100 sometimes, but no worries, you know, there's AC as well. But for the most part, it's beautiful. WILL: You sold me already. JAMON: [laughs] WILL: So, I live in South Florida, so...[laughs] JAMON: Yeah, it's going to be different in South Florida in July. [laughter] WILL: Awesome. Well, this has been an amazing chat, and just great getting to know you and learning more about Infinite Red. Thank you for being a part of the podcast. JAMON: Yeah. Thanks for inviting me, Will. It was a lot of fun, and you're a great host. I appreciate it. WILL: I appreciate it. JAMON: You can subscribe to the show and find notes along with a complete transcript for this episode at giantrobots.fm. If you have questions or comments, email us at hosts@giantrobots.fm. You can find me on Twitter @will23larry. This podcast is brought to you by thoughtbot and produced and edited by Mandy Moore. Thanks for listening. See you next time. Did you know thoughtbot has a referral program? If you introduce us to someone looking for a design or development partner, we will compensate you if they decide to work with us. More info on our website at tbot.io/referral. Or you can email us at referrals@thoughtbot.com with any questions. Special Guest: Jamon Holmgren.
On this episode of Remote Ruby, Jason, Chris, and Andrew welcome guest, Amir Rajan, an indie game developer and owner/CEO of DragonRuby LLP. Today, our conversations revolve around game development using RubyMotion and DragonRuby. We'll hear how Amir built a successful iOS game called, A Dark Room, using RubyMotion, and his experience with RubyMotion and its expansion to target other platforms, leading to the creation of DragonRuby Game Toolkit. There's a discussion on the challenges of targeting different platforms and the benefits of DragonRuby's data-oriented API, scalability, and continuity of design. Amir touches on the benefits of game development, the possibility of making a living from it, and he shares some advice for indie game developers. The importance of sustainability in open source development is emphasized, and Amir tells us about some upcoming features in DragonRuby, and he explains his reasoning for charging for DragonRuby. Hit download to learn more! [00:01:28] Amir talks about his experience using RubyMotion to build a successful iOS game called, A Dark Room, and about acquiring RubyMotion and expanding its runtime to target other platforms, which led to the creation of DragonRuby Game Toolkit. [00:06:21] When it comes to RubyMotion, Amir explains that you still need to learn some of the iOS frameworks to implement it in Ruby.[00:09:10] We hear Amir's thought process behind acquiring RubyMotion and how taking over a runtime has been for him. He emphasizes the importance of understanding foreign function interfaces and building C extensions in Ruby to take advantage of battle-hardened C libraries. Also, there's a great book he read that really helped him understand the machinery and language called, Ruby Under a Microscope. [00:11:52] Amir discusses the challenges of targeting different platforms with RubyMotion and the difficulties of integrating new language enhancements into the runtime. [00:14:02] We learn how DragonRuby utilizes MRuby to create a multi-level runtime that handles constructs that don't exist on different platforms and 90komprovides a cross-platform experience for game development without any assumptions about the platform.[00:19:15] Amir dives into the problem DragonRuby solves and why someone would want to use it, besides it being awesome and that you get to build video games in Ruby.[00:21:59] Jason loves how simple DragonRuby is to get started so Amir explains the simplicity behind it versus Unity. The continuity of design is emphasized which allows developers to start with simple solutions and expand as necessary. [00:27:30] The conversation touches on the benefits of game development and the possibility of making a living from it.
Game Developer and CEO of DragonRuby, Amir Rajan returns to the show. He joins the rogues to talk about DragonRuby. DragonRuby is a zero dependency, cross-platform, Ruby runtime built on top of mRuby, libSDL, and LLVM. Additionally, Amir talks about how it allows you to use the Ruby language to build video games. He also shares his experiences when it comes to working with mruby.About this Episode All about DragonRuby Building VR games using Ruby Runtime and how it works Sponsors AppSignal Developer Book Club starting with Clean Architecture by Robert C. Martin Become a Top 1% Dev with a Top End Devs Membership Links 272 RR Game Development and RubyMotion with Amir Rajan RR 333: RubyMotion and the Aesthetic of Ruby with Amir Rajan RUBYMOTION DragonRuby Flappy Dragon by DragonRuby mruby Simple DirectMedia Layer Ryan C. Gordon's Homepage fiddle.dragonruby.org Chipmunk2D Physics Toby Fox GitHub: DragonRuby/dragonruby-game-toolkit-contrib Intro to DragonRuby Game Toolkit Pico-8 Fancine Duelists amirrajan.net Twitter: @amirrajan Picks Amir - Project Hail Mary Amir - We Are Legion (We Are Bob) Amir - The Broken Earth Trilogy Charles - King of Tokyo Charles - Command your coding career Charles - Rails Remote Conference 2023 Luke - UTM Luke - Modules! Magnets! MiRage Mk3: The Mechanical Keyboard You're Meant to Modify! Luke - Real Hardware Hacking (with a hacksaw): My New Wearable Computer Valentino - Apple Watch Ultra
Game Developer and CEO of DragonRuby, Amir Rajan returns to the show. He joins the rogues to talk about DragonRuby. DragonRuby is a zero dependency, cross-platform, Ruby runtime built on top of mRuby, libSDL, and LLVM. Additionally, Amir talks about how it allows you to use the Ruby language to build video games. He also shares his experiences when it comes to working with mruby.About this Episode All about DragonRuby Building VR games using Ruby Runtime and how it works Sponsors AppSignal Developer Book Club starting with Clean Architecture by Robert C. Martin Become a Top 1% Dev with a Top End Devs Membership Links 272 RR Game Development and RubyMotion with Amir Rajan RR 333: RubyMotion and the Aesthetic of Ruby with Amir Rajan RUBYMOTION DragonRuby Flappy Dragon by DragonRuby mruby Simple DirectMedia Layer Ryan C. Gordon's Homepage fiddle.dragonruby.org Chipmunk2D Physics Toby Fox GitHub: DragonRuby/dragonruby-game-toolkit-contrib Intro to DragonRuby Game Toolkit Pico-8 Fancine Duelists amirrajan.net Twitter: @amirrajan Picks Amir - Project Hail Mary Amir - We Are Legion (We Are Bob) Amir - The Broken Earth Trilogy Charles - King of Tokyo Charles - Command your coding career Charles - Rails Remote Conference 2023 Luke - UTM Luke - Modules! Magnets! MiRage Mk3: The Mechanical Keyboard You're Meant to Modify! Luke - Real Hardware Hacking (with a hacksaw): My New Wearable Computer Valentino - Apple Watch Ultra
Maxwell Anselm discusses the options that he's found to build multi-platform mobile applications. The panel chimes in on different options. Maxwell also goes into how he uses Ruby in non-Ruby codebases. Panel Darren BroemmerDave KimuraJohn EppersonLuke Stutters Guest Maxwell Anselm Sponsors Dev Influencers AcceleratorLevel Up | Devchat.tvPodcastBootcamp.io Links The Definitive Guide to RUBY's C APIKotlin for Cross-Platform Mobile DevelopmentFlutterShardboxRubyMotionLife in the slow laneGitHub: Max ( silverhammermba ) Picks Darren- GosuDave- TKD Breakable BoardsDave- 12v USB Fan Cable John- GitHub | svenfuchs/gem-releaseJohn- fastlaneLuke- Linux FunLuke- LRUG August 2021Maxwell- ffi | RubyGems Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails ScreencastsTwitter: Dave Kimura ( @kobaltz )GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile ConsultingGitHub: John Epperson ( kirillian )LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts ) Special Guest: Maxwell Anselm.
Maxwell Anselm discusses the options that he's found to build multi-platform mobile applications. The panel chimes in on different options. Maxwell also goes into how he uses Ruby in non-Ruby codebases. Panel Darren Broemmer Dave Kimura John Epperson Luke Stutters Guest Maxwell Anselm Sponsors Dev Influencers Accelerator Level Up | Devchat.tv PodcastBootcamp.io Links The Definitive Guide to RUBY's C API Kotlin for Cross-Platform Mobile Development Flutter Shardbox RubyMotion Life in the slow lane GitHub: Max ( silverhammermba ) Picks Darren- Gosu Dave- TKD Breakable Boards Dave- 12v USB Fan Cable John- GitHub | svenfuchs/gem-release John- fastlane Luke- Linux Fun Luke- LRUG August 2021 Maxwell- ffi | RubyGems Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails Screencasts Twitter: Dave Kimura ( @kobaltz ) GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile Consulting GitHub: John Epperson ( kirillian ) LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts )
Maxwell Anselm discusses the options that he's found to build multi-platform mobile applications. The panel chimes in on different options. Maxwell also goes into how he uses Ruby in non-Ruby codebases. Panel Darren BroemmerDave KimuraJohn EppersonLuke Stutters Guest Maxwell Anselm Sponsors Dev Influencers AcceleratorLevel Up | Devchat.tvPodcastBootcamp.io Links The Definitive Guide to RUBY's C APIKotlin for Cross-Platform Mobile DevelopmentFlutterShardboxRubyMotionLife in the slow laneGitHub: Max ( silverhammermba ) Picks Darren- GosuDave- TKD Breakable BoardsDave- 12v USB Fan Cable John- GitHub | svenfuchs/gem-releaseJohn- fastlaneLuke- Linux FunLuke- LRUG August 2021Maxwell- ffi | RubyGems Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails ScreencastsTwitter: Dave Kimura ( @kobaltz )GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile ConsultingGitHub: John Epperson ( kirillian )LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts ) Special Guest: Maxwell Anselm.
Maxwell Anselm discusses the options that he's found to build multi-platform mobile applications. The panel chimes in on different options. Maxwell also goes into how he uses Ruby in non-Ruby codebases. Panel Darren Broemmer Dave Kimura John Epperson Luke Stutters Guest Maxwell Anselm Sponsors Dev Influencers Accelerator Level Up | Devchat.tv PodcastBootcamp.io Links The Definitive Guide to RUBY's C API Kotlin for Cross-Platform Mobile Development Flutter Shardbox RubyMotion Life in the slow lane GitHub: Max ( silverhammermba ) Picks Darren- Gosu Dave- TKD Breakable Boards Dave- 12v USB Fan Cable John- GitHub | svenfuchs/gem-release John- fastlane Luke- Linux Fun Luke- LRUG August 2021 Maxwell- ffi | RubyGems Contact Darren: Twitter: Darren Broemmer ( @DarrenBroemmer ) Contact Dave: Ruby on Rails Screencasts Twitter: Dave Kimura ( @kobaltz ) GitHub: David Kimura ( kobaltz ) Contact John: Rock Agile Consulting GitHub: John Epperson ( kirillian ) LinkedIn: John Epperson Contact Luke: GitHub: Luke Stutters ( lukestuts )
This episode brought to you by Infinite Red! Infinite Red is a premier React Native design and development agency located in the USA. With five years of React Native experience and deep roots in the React Native community (hosts of Chain React and the React Native Newsletter), Infinite Red is the best choice for your next React Native app.Helpful Links:Weird bug ProMotionMark releasing app while skydiving Patch-PackageConnect With Us!React Native Radio: @ReactNativeRdioJamon - @jamonholmgrenJon Major - @jonmajorcMark - @markrickert
Relicans host, Rachael Wright-Munn talks to full-time indie game developer and creator of A Dark Room iOS, Amir Rajan. This RPG conquered the world and took over the Number 1 spot in the App Store, and placed in the Top 10 paid apps across 70 countries. Amir is also the CEO of DragonRuby LLP, creators of DragonRuby Game Toolkit and RubyMotion.Should you find a burning need to share your thoughts or rants about the show, please spray them at devrel@newrelic.com. While you're going to all the trouble of shipping us some bytes, please consider taking a moment to let us know what you'd like to hear on the show in the future. Despite the all-caps flaming you will receive in response, please know that we are sincerely interested in your feedback; we aim to appease. Follow us on the Twitters: @PolyglotShow.
Rebuild: 1: Podcasting, LTSV, RubyMotion (伊藤直也) https://rebuild.fm/1/ LULA脱毛カウンセリング | TOTAL BEAUTY LULAオフィシャルPodcast https://lulapodcast.com/ Apple One https://www.apple.com/jp/apple-one/ ワイヤレスゲームコントローラを Apple 製のデバイスに接続する https://support.apple.com/ja-jp/HT210414 スポーツデポ・アルペン限定キャンペーン 「NIKE BOA JACKET & NIKE FAKE FUR JACKET」 ~「REVERSE キュウクツな日常をひっくり返せ」~ | ALPEN GROUP BRAND NEWS | アルペングループ https://information.alpen-group.jp/info/detail/611 珪藻土なのに柔らかくて寒い日でもヒヤッとしないバスマット | ROOMIE(ルーミー) https://www.roomie.jp/2020/11/668063/ 自撮り画像を他人が撮ったように変換する技術「Unselfie」 Adobeなど開発 https://www.itmedia.co.jp/news/articles/2011/02/news052.html NBA 選手たちが『ストリートファイター』のキャラクターになると? https://hypebeast.com/jp/2020/11/graphic-designer-creates-nba-version-street-fighter ホンダの新EV Honda e、日本での価格と発売日が公開。欧州よりだいぶ高い451万円から https://japanese.engadget.com/honda-e-japan-launch-093217993.html スキンケアシェーバー ラムダッシュ 3枚刃 ES-MT21 | リニアシェーバー ラムダッシュ 3枚刃(WET/DRY) | 商品一覧 | メンズシェーバー(電動・電気シェーバー) | Panasonic https://panasonic.jp/shaver/products/lamdash_wet/es_mt21.html ナチュリエ ハトムギ化粧水|ハトムギ化粧水・ハトムギ保湿ジェル|naturie(ナチュリエ) https://www.naturie-net.jp/lotion/ ルルルン ローション|フェイスマスク ルルルン【公式】 https://lululun.com/lotion/ ボイスチェンジャーを備えた変わり種イヤホン「EFFEGIC」 https://japanese.engadget.com/effegic-043047780.html エンディング曲 : 2回目のVIO ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ Instagram https://www.instagram.com/tomitotimes/ YouTube https://www.youtube.com/channel/UCTYNU2f-t4KZBV-4Wc1apRQ Tomito Times Podcast (Season1) https://anchor.fm/tomito-times
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Special Guest: Lori Olson Episode Summary In this episode of My Ruby Story, Charles hosts Lori Olson, Chief Instructor at WNDX School where she teaches software developers of all kinds to become published App authors, using RubyMotion. Lori invites all to come to her “six steps from idea to app store” webinar. Listen to Lori on the podcast Ruby Rogues on this episode. Lori took her high school counselor’s advice and majored in Computer Science. She then went onto establishing The WNDX Group , a software development & training consultancy. Lori describes the current projects she is working on, how her love of fantasy books started and what a day in her life looks like both in and out of coding. Links Ruby Rogues 405: Rubymotion with Lori Olson Six Vital Steps from Idea to App Store | WNDX School DragonRuby Game Toolkit Tutorial | WNDX School The WNDX Group Lori’s Twitter Lori’s LinkedIN Lori’s GitHub https://rubymotionweekly.com/ https://devchat.tv/my-ruby-story/ https://www.facebook.com/DevChattv Picks Lori Olson: ipad Mini Charles Max Wood: Looking for beta testers for Podwrench If you were listening to a programming related podcast that ended abruptly within the last 6 months and would like it continued please contact me. We would like to host these shows on Devchat.tv. Finding Slack channels for topics you are interested in
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Special Guest: Lori Olson Episode Summary In this episode of My Ruby Story, Charles hosts Lori Olson, Chief Instructor at WNDX School where she teaches software developers of all kinds to become published App authors, using RubyMotion. Lori invites all to come to her “six steps from idea to app store” webinar. Listen to Lori on the podcast Ruby Rogues on this episode. Lori took her high school counselor’s advice and majored in Computer Science. She then went onto establishing The WNDX Group , a software development & training consultancy. Lori describes the current projects she is working on, how her love of fantasy books started and what a day in her life looks like both in and out of coding. Links Ruby Rogues 405: Rubymotion with Lori Olson Six Vital Steps from Idea to App Store | WNDX School DragonRuby Game Toolkit Tutorial | WNDX School The WNDX Group Lori’s Twitter Lori’s LinkedIN Lori’s GitHub https://rubymotionweekly.com/ https://devchat.tv/my-ruby-story/ https://www.facebook.com/DevChattv Picks Lori Olson: ipad Mini Charles Max Wood: Looking for beta testers for Podwrench If you were listening to a programming related podcast that ended abruptly within the last 6 months and would like it continued please contact me. We would like to host these shows on Devchat.tv. Finding Slack channels for topics you are interested in
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan .TECH– tech/MRS and use the coupon code “TECH” and get a 1 year .TECH Domain at $9.99 and 5 Year Domain at $49.99. Hurry! CacheFly Host: Charles Max Wood Special Guest: Lori Olson Episode Summary In this episode of My Ruby Story, Charles hosts Lori Olson, Chief Instructor at WNDX School where she teaches software developers of all kinds to become published App authors, using RubyMotion. Lori invites all to come to her “six steps from idea to app store” webinar. Listen to Lori on the podcast Ruby Rogues on this episode. Lori took her high school counselor’s advice and majored in Computer Science. She then went onto establishing The WNDX Group , a software development & training consultancy. Lori describes the current projects she is working on, how her love of fantasy books started and what a day in her life looks like both in and out of coding. Links Ruby Rogues 405: Rubymotion with Lori Olson Six Vital Steps from Idea to App Store | WNDX School DragonRuby Game Toolkit Tutorial | WNDX School The WNDX Group Lori’s Twitter Lori’s LinkedIN Lori’s GitHub https://rubymotionweekly.com/ https://devchat.tv/my-ruby-story/ https://www.facebook.com/DevChattv Picks Lori Olson: ipad Mini Charles Max Wood: Looking for beta testers for Podwrench If you were listening to a programming related podcast that ended abruptly within the last 6 months and would like it continued please contact me. We would like to host these shows on Devchat.tv. Finding Slack channels for topics you are interested in
RubyMotion, soon to be DragonRuby, empowers developers to write cross-platform apps for iOS, Android and OS X in Ruby. Lori Olson joined Brittany on the show to discuss the evolution of the framework, her mobile development courses and her (potentially) controversial opinions of Javascript.
RubyMotion, soon to be DragonRuby, empowers developers to write cross-platform apps for iOS, Android and OS X in Ruby. Lori Olson joined Brittany on the show to discuss the evolution of the framework, her mobile development courses and her (potentially) controversial opinions of Javascript.
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus Cachefly Panel Nate Hopkins Dave Kimura Andrew Mason Charles Max Wood Joined by Special Guest: Lori Olson Summary Lori Olson introduces herself, her school and ruby motion. Lori invites all to come to her webinar introducing her “six steps from idea to app store”. The panel discusses their rubymotion experiences and issues; which Lori advises on gems that will help. Lori shares her introduction to ruby and the story of writing her book.The evolution of rubymotion is shared leading the panel to discuss dragon ruby, the rebranding of rubymotion, which will be open sourced. Lori discusses her views of open sourcing and talks about her experiences in the rubymotion community; Amir Rajan, the owner of rubymotion, and his role and success in rubymotion are discussed. The panel considers flows potential and discusses the best way to develop for IOS and android. Links https://wndxschool.easywebinar.live/registration http://www.rubymotion.com/news/2019/03/01/the-sleeping-dragon-has-awoken.html https://github.com/infinitered/redpotion http://rubymotionquery.com https://wndx.school/p/rubymotion-jumpstart https://github.com/rubymotion/BubbleWrap https://rubymotionweekly.com https://www.reddit.com/r/ruby/comments/aovm41/a_renaissance_for_ruby_rubymotion_will_be/ http://macruby.org/ https://github.com/amirrajan/rubymotion-templates https://github.com/infinitered/bluepotion https://itunes.apple.com/ca/app/wimby/id1147353955?mt=8 https://wimby.ca https://wndx.school/p/6-pack-apps https://coredatainmotion.com/ https://motioneers.herokuapp.com https://devchat.tv/iphreaks/161-ips-successful-indie-ios-game-development-with-amir-rajan/ https://devchat.tv/ruby-rogues/272-rr-game-development-and-rubymotion-with-amir-rajan/ https://www.twitch.tv/amirrajan https://kotlinlang.org/ https://devchat.tv/iphreaks/172-ips-kotlin-vs-swift-with-andrew-rahn/ Picks Nate Hopkins https://www.focusatwill.com https://en.wikipedia.org/wiki/Psych Dave Kimura https://nucleoapp.com/ https://calendly.com Andrew Mason https://www.codewithjason.com/rails-testing-book/ https://twitter.com/josh_cheek Charles Max Wood www.vrbo.com www.audible.com Lori Olson https://alteregoeffect.com https://www.jetbrains.com/ruby/
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus Cachefly Panel Nate Hopkins Dave Kimura Andrew Mason Charles Max Wood Joined by Special Guest: Lori Olson Summary Lori Olson introduces herself, her school and ruby motion. Lori invites all to come to her webinar introducing her “six steps from idea to app store”. The panel discusses their rubymotion experiences and issues; which Lori advises on gems that will help. Lori shares her introduction to ruby and the story of writing her book.The evolution of rubymotion is shared leading the panel to discuss dragon ruby, the rebranding of rubymotion, which will be open sourced. Lori discusses her views of open sourcing and talks about her experiences in the rubymotion community; Amir Rajan, the owner of rubymotion, and his role and success in rubymotion are discussed. The panel considers flows potential and discusses the best way to develop for IOS and android. Links https://wndxschool.easywebinar.live/registration http://www.rubymotion.com/news/2019/03/01/the-sleeping-dragon-has-awoken.html https://github.com/infinitered/redpotion http://rubymotionquery.com https://wndx.school/p/rubymotion-jumpstart https://github.com/rubymotion/BubbleWrap https://rubymotionweekly.com https://www.reddit.com/r/ruby/comments/aovm41/a_renaissance_for_ruby_rubymotion_will_be/ http://macruby.org/ https://github.com/amirrajan/rubymotion-templates https://github.com/infinitered/bluepotion https://itunes.apple.com/ca/app/wimby/id1147353955?mt=8 https://wimby.ca https://wndx.school/p/6-pack-apps https://coredatainmotion.com/ https://motioneers.herokuapp.com https://devchat.tv/iphreaks/161-ips-successful-indie-ios-game-development-with-amir-rajan/ https://devchat.tv/ruby-rogues/272-rr-game-development-and-rubymotion-with-amir-rajan/ https://www.twitch.tv/amirrajan https://kotlinlang.org/ https://devchat.tv/iphreaks/172-ips-kotlin-vs-swift-with-andrew-rahn/ Picks Nate Hopkins https://www.focusatwill.com https://en.wikipedia.org/wiki/Psych Dave Kimura https://nucleoapp.com/ https://calendly.com Andrew Mason https://www.codewithjason.com/rails-testing-book/ https://twitter.com/josh_cheek Charles Max Wood www.vrbo.com www.audible.com Lori Olson https://alteregoeffect.com https://www.jetbrains.com/ruby/
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan Triplebyte offers a $1000 signing bonus Cachefly Panel Nate Hopkins Dave Kimura Andrew Mason Charles Max Wood Joined by Special Guest: Lori Olson Summary Lori Olson introduces herself, her school and ruby motion. Lori invites all to come to her webinar introducing her “six steps from idea to app store”. The panel discusses their rubymotion experiences and issues; which Lori advises on gems that will help. Lori shares her introduction to ruby and the story of writing her book.The evolution of rubymotion is shared leading the panel to discuss dragon ruby, the rebranding of rubymotion, which will be open sourced. Lori discusses her views of open sourcing and talks about her experiences in the rubymotion community; Amir Rajan, the owner of rubymotion, and his role and success in rubymotion are discussed. The panel considers flows potential and discusses the best way to develop for IOS and android. Links https://wndxschool.easywebinar.live/registration http://www.rubymotion.com/news/2019/03/01/the-sleeping-dragon-has-awoken.html https://github.com/infinitered/redpotion http://rubymotionquery.com https://wndx.school/p/rubymotion-jumpstart https://github.com/rubymotion/BubbleWrap https://rubymotionweekly.com https://www.reddit.com/r/ruby/comments/aovm41/a_renaissance_for_ruby_rubymotion_will_be/ http://macruby.org/ https://github.com/amirrajan/rubymotion-templates https://github.com/infinitered/bluepotion https://itunes.apple.com/ca/app/wimby/id1147353955?mt=8 https://wimby.ca https://wndx.school/p/6-pack-apps https://coredatainmotion.com/ https://motioneers.herokuapp.com https://devchat.tv/iphreaks/161-ips-successful-indie-ios-game-development-with-amir-rajan/ https://devchat.tv/ruby-rogues/272-rr-game-development-and-rubymotion-with-amir-rajan/ https://www.twitch.tv/amirrajan https://kotlinlang.org/ https://devchat.tv/iphreaks/172-ips-kotlin-vs-swift-with-andrew-rahn/ Picks Nate Hopkins https://www.focusatwill.com https://en.wikipedia.org/wiki/Psych Dave Kimura https://nucleoapp.com/ https://calendly.com Andrew Mason https://www.codewithjason.com/rails-testing-book/ https://twitter.com/josh_cheek Charles Max Wood www.vrbo.com www.audible.com Lori Olson https://alteregoeffect.com https://www.jetbrains.com/ruby/
Panel: Charles Max Wood Guest: Mark Bates This week on My Ruby Story, Chuck talks with Mark Bates who is a consultant, trainer, entrepreneur, co-founder of PaperCall, and an author! Chuck and Mark talk about PaperCall, GO, Ruby, JavaScript, and helping others within the community. Check out today’s episode to hear more! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:59 – Chuck: Hi! I saw we were on Episode 198! We talked about Ruby and different communities. 1:25 – Guest: Yes, we were talking about the conference we were trying to start, which never took-off! 1:50 – Chuck: You talked about how you are working with GO now. You are an author, too! 2:06 – Guest: That came out in 2009. My 2nd son was born the day before that went to print. 2:42 – Chuck: How many kids do you have? 2:47 – Guest: I have 2 kids. 3:00 – Chuck: Happy Birthday buddy! Let’s talk about your journey into and out of Ruby! 3:15 – Guest: I will be happy to. 3:23 – Chuck: 3:27 – Guest: I have a degree in music and studied guitar in England. I came back in 1999 and needed a job. If you could spell HTML then it was good – then if you could work with it then it was even better! The guest mentions Liverpool, England. 4:20 – Guest: I got a job and transitioned into other things. Fell in-love with Java at the time – and then moved into straight development. I needed money, I had skills into it, and then I fell in-love with 5:10 – Chuck: What aspect in music are you into? 5:14 – Guest: I am a singer/songwriter, and yes into guitar. 5:57 – Chuck: Yeah, they used to have jam sections at conferences. 6:37 – Chuck: I find in interesting how much crossover there is between music and programming/coding. I hear them say: I found I needed to build a site for the band and whatnot. 7:25 – Guest: Yeah, I can do view source and I can figure out that I am missing a tag. That put me ahead in 1997 and 1998! I had done some work that. 8:57 – Chuck: You don’t even have to generate a JavaScript project with that – can I find the template and can I go? 9:14 – Guest: Yes programming has come a long way. 9:22 – Chuck: It is interesting, though. When we talk about those things – it was a different time but I don’t know if it was easier/harder for people to come into the career field now. 9:52 – Guest: Yes, I am into the educational side of it, too. There was a lack of books on the subject back-in-the-day. There is almost too much material now. Guest: I do a Google search that will give me something that is most recent. There is no reason to have to dig through material that isn’t relevant anymore. Guest: I used NOTEPAD to write websites. 11:29 – Chuck: Yes, and then Notepad plus, plus! 11:39 – Guest: Those days are gone. If you want to build a website you go to a company that does that now. The guest refers to Kubernetes, Ruby, HTML, Sequel and much more! 12:55 – Guest: I see the new developers getting overwhelmed in the beginning they need to learn 10 languages at once. I am fortunate to have come into the industry when I did. I don’t envy them. 13:56 – Chuck: Talking about how complicated the Web is getting. What led you to Ruby on Rails? 14:12 – Guest: In 2004 – I just finished a Java project that had roughly 100,000 lines of configuration!! Everything in Java at that point was XML configuration. I didn’t like debugging XML – and it wasn’t fun. I was refiguring out my career. Everything at the time was XML and more XML! I didn’t want to be in that world. I quit developing completely for 2 years. I worked as an internship in a recording studio for a while. I got to work with a lot of great people, but there was a lack of money and lack of general employment. We wanted to have kids and at the end of 2005 a friend mentioned Ruby on Rails. He told me that it’s NOT Java and that I would love it. I installed it and found an old cookbook tutorial and immediately I said: THAT’s what I want programming to be. When did you pick up Ruby on Rails? 18:14 – Chuck: I picked it up when I worked for...and I was doing Q&A customer service. 19:05 – Guest: Yeah, he hooked me for sure – that jerk! I really got into this book! Check it out! It changed my career and web development entirely. For all the grief we give Rails it did change the world. 20:40 – Chuck: What have you done in Ruby that you are particularly proud of? 20:50 – Guest: Most proud running Boston RB. We had so many people show up! 22:49 – Chuck: You talk about those things and that’s why I ask the question in the first place. And it turns out that: I did THIS thing in the community! I like talking to people and helping people. 23:31 – Guest: Yes, I get to work and help people all around the world. Sweet! I get to go in and help people. It gives me the time to contribute to open source and go to Slack. I have a career based around: Helping People! I like the code that I created, but I like the community stuff I have done over the years. 24:31 – Chuck: Yep my career coach wanted me to create a vision/mission statement for DevChat T.V. We make a difference and people make career changes b/c they are getting help and information 25:23 – Guest: Making a living off of helping people is a great feeling! 25:44 – Guest: The contents of the book are wildly out-of-date, but the origin story is hysterical. I went to a conference in 2008 and was just laid-off in October 2008. I got into a hot tub in Orlando and someone started talking to me about my recent talk. By the way, never write a book – don’t do it! 28:18 – Chuck: Sounds like a movie plot to me! 28:25 – Guest: Oh no – that’s not a good movie idea! 28:50 – Chuck and Guest go back-and-forth with a pretend movie: who would play you? 29:15 – Chuck: Let’s talk about PaperCall? 29:23 – Guest: I hated that (for conferences) you had to enter in a lot of different forms (2-3 proposals) for one conference. This bothered me and was very time-consuming. 31:45 – Guest & Chuck talking about saving time. 32:37 – Chuck: What are you doing now? 32:42 – Guest: Yeah, I get to go around and help engineers and open source exclusively. 33:48 – Chuck: How did you get into GO? 33:53 – Guest: In about 2012 I started looking into GO. The guest talks about the benefits and why he likes GO! 36:28 – Guest: What you see is what you get in GO, which is what I like! 39:13 – Chuck: It is an interesting language, and I haven’t played around with it as much as I would like to. I love trying new things, and see how it solves problems. 40:30 – Guest. 42:00 – Chuck: Picks! 42:06 – Advertisement – Fresh Books! END – CacheFly Links: Ruby Elixir Rails Rust Python PHP Kubernetes React Native Ruby Motion Mark’s GitHub Mark’s Twitter PaperCall.io Sponsors: Get a Coder Job Cache Fly Fresh Books Picks: Chuck Book: Ultra Marathon Man Mark GO! GoBuffalo.io Boston RB Jim Weirich – In Memory of... Jim’s Bio
Panel: Charles Max Wood Guest: Mark Bates This week on My Ruby Story, Chuck talks with Mark Bates who is a consultant, trainer, entrepreneur, co-founder of PaperCall, and an author! Chuck and Mark talk about PaperCall, GO, Ruby, JavaScript, and helping others within the community. Check out today’s episode to hear more! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:59 – Chuck: Hi! I saw we were on Episode 198! We talked about Ruby and different communities. 1:25 – Guest: Yes, we were talking about the conference we were trying to start, which never took-off! 1:50 – Chuck: You talked about how you are working with GO now. You are an author, too! 2:06 – Guest: That came out in 2009. My 2nd son was born the day before that went to print. 2:42 – Chuck: How many kids do you have? 2:47 – Guest: I have 2 kids. 3:00 – Chuck: Happy Birthday buddy! Let’s talk about your journey into and out of Ruby! 3:15 – Guest: I will be happy to. 3:23 – Chuck: 3:27 – Guest: I have a degree in music and studied guitar in England. I came back in 1999 and needed a job. If you could spell HTML then it was good – then if you could work with it then it was even better! The guest mentions Liverpool, England. 4:20 – Guest: I got a job and transitioned into other things. Fell in-love with Java at the time – and then moved into straight development. I needed money, I had skills into it, and then I fell in-love with 5:10 – Chuck: What aspect in music are you into? 5:14 – Guest: I am a singer/songwriter, and yes into guitar. 5:57 – Chuck: Yeah, they used to have jam sections at conferences. 6:37 – Chuck: I find in interesting how much crossover there is between music and programming/coding. I hear them say: I found I needed to build a site for the band and whatnot. 7:25 – Guest: Yeah, I can do view source and I can figure out that I am missing a tag. That put me ahead in 1997 and 1998! I had done some work that. 8:57 – Chuck: You don’t even have to generate a JavaScript project with that – can I find the template and can I go? 9:14 – Guest: Yes programming has come a long way. 9:22 – Chuck: It is interesting, though. When we talk about those things – it was a different time but I don’t know if it was easier/harder for people to come into the career field now. 9:52 – Guest: Yes, I am into the educational side of it, too. There was a lack of books on the subject back-in-the-day. There is almost too much material now. Guest: I do a Google search that will give me something that is most recent. There is no reason to have to dig through material that isn’t relevant anymore. Guest: I used NOTEPAD to write websites. 11:29 – Chuck: Yes, and then Notepad plus, plus! 11:39 – Guest: Those days are gone. If you want to build a website you go to a company that does that now. The guest refers to Kubernetes, Ruby, HTML, Sequel and much more! 12:55 – Guest: I see the new developers getting overwhelmed in the beginning they need to learn 10 languages at once. I am fortunate to have come into the industry when I did. I don’t envy them. 13:56 – Chuck: Talking about how complicated the Web is getting. What led you to Ruby on Rails? 14:12 – Guest: In 2004 – I just finished a Java project that had roughly 100,000 lines of configuration!! Everything in Java at that point was XML configuration. I didn’t like debugging XML – and it wasn’t fun. I was refiguring out my career. Everything at the time was XML and more XML! I didn’t want to be in that world. I quit developing completely for 2 years. I worked as an internship in a recording studio for a while. I got to work with a lot of great people, but there was a lack of money and lack of general employment. We wanted to have kids and at the end of 2005 a friend mentioned Ruby on Rails. He told me that it’s NOT Java and that I would love it. I installed it and found an old cookbook tutorial and immediately I said: THAT’s what I want programming to be. When did you pick up Ruby on Rails? 18:14 – Chuck: I picked it up when I worked for...and I was doing Q&A customer service. 19:05 – Guest: Yeah, he hooked me for sure – that jerk! I really got into this book! Check it out! It changed my career and web development entirely. For all the grief we give Rails it did change the world. 20:40 – Chuck: What have you done in Ruby that you are particularly proud of? 20:50 – Guest: Most proud running Boston RB. We had so many people show up! 22:49 – Chuck: You talk about those things and that’s why I ask the question in the first place. And it turns out that: I did THIS thing in the community! I like talking to people and helping people. 23:31 – Guest: Yes, I get to work and help people all around the world. Sweet! I get to go in and help people. It gives me the time to contribute to open source and go to Slack. I have a career based around: Helping People! I like the code that I created, but I like the community stuff I have done over the years. 24:31 – Chuck: Yep my career coach wanted me to create a vision/mission statement for DevChat T.V. We make a difference and people make career changes b/c they are getting help and information 25:23 – Guest: Making a living off of helping people is a great feeling! 25:44 – Guest: The contents of the book are wildly out-of-date, but the origin story is hysterical. I went to a conference in 2008 and was just laid-off in October 2008. I got into a hot tub in Orlando and someone started talking to me about my recent talk. By the way, never write a book – don’t do it! 28:18 – Chuck: Sounds like a movie plot to me! 28:25 – Guest: Oh no – that’s not a good movie idea! 28:50 – Chuck and Guest go back-and-forth with a pretend movie: who would play you? 29:15 – Chuck: Let’s talk about PaperCall? 29:23 – Guest: I hated that (for conferences) you had to enter in a lot of different forms (2-3 proposals) for one conference. This bothered me and was very time-consuming. 31:45 – Guest & Chuck talking about saving time. 32:37 – Chuck: What are you doing now? 32:42 – Guest: Yeah, I get to go around and help engineers and open source exclusively. 33:48 – Chuck: How did you get into GO? 33:53 – Guest: In about 2012 I started looking into GO. The guest talks about the benefits and why he likes GO! 36:28 – Guest: What you see is what you get in GO, which is what I like! 39:13 – Chuck: It is an interesting language, and I haven’t played around with it as much as I would like to. I love trying new things, and see how it solves problems. 40:30 – Guest. 42:00 – Chuck: Picks! 42:06 – Advertisement – Fresh Books! END – CacheFly Links: Ruby Elixir Rails Rust Python PHP Kubernetes React Native Ruby Motion Mark’s GitHub Mark’s Twitter PaperCall.io Sponsors: Get a Coder Job Cache Fly Fresh Books Picks: Chuck Book: Ultra Marathon Man Mark GO! GoBuffalo.io Boston RB Jim Weirich – In Memory of... Jim’s Bio
Panel: Charles Max Wood Guest: Mark Bates This week on My Ruby Story, Chuck talks with Mark Bates who is a consultant, trainer, entrepreneur, co-founder of PaperCall, and an author! Chuck and Mark talk about PaperCall, GO, Ruby, JavaScript, and helping others within the community. Check out today’s episode to hear more! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:59 – Chuck: Hi! I saw we were on Episode 198! We talked about Ruby and different communities. 1:25 – Guest: Yes, we were talking about the conference we were trying to start, which never took-off! 1:50 – Chuck: You talked about how you are working with GO now. You are an author, too! 2:06 – Guest: That came out in 2009. My 2nd son was born the day before that went to print. 2:42 – Chuck: How many kids do you have? 2:47 – Guest: I have 2 kids. 3:00 – Chuck: Happy Birthday buddy! Let’s talk about your journey into and out of Ruby! 3:15 – Guest: I will be happy to. 3:23 – Chuck: 3:27 – Guest: I have a degree in music and studied guitar in England. I came back in 1999 and needed a job. If you could spell HTML then it was good – then if you could work with it then it was even better! The guest mentions Liverpool, England. 4:20 – Guest: I got a job and transitioned into other things. Fell in-love with Java at the time – and then moved into straight development. I needed money, I had skills into it, and then I fell in-love with 5:10 – Chuck: What aspect in music are you into? 5:14 – Guest: I am a singer/songwriter, and yes into guitar. 5:57 – Chuck: Yeah, they used to have jam sections at conferences. 6:37 – Chuck: I find in interesting how much crossover there is between music and programming/coding. I hear them say: I found I needed to build a site for the band and whatnot. 7:25 – Guest: Yeah, I can do view source and I can figure out that I am missing a tag. That put me ahead in 1997 and 1998! I had done some work that. 8:57 – Chuck: You don’t even have to generate a JavaScript project with that – can I find the template and can I go? 9:14 – Guest: Yes programming has come a long way. 9:22 – Chuck: It is interesting, though. When we talk about those things – it was a different time but I don’t know if it was easier/harder for people to come into the career field now. 9:52 – Guest: Yes, I am into the educational side of it, too. There was a lack of books on the subject back-in-the-day. There is almost too much material now. Guest: I do a Google search that will give me something that is most recent. There is no reason to have to dig through material that isn’t relevant anymore. Guest: I used NOTEPAD to write websites. 11:29 – Chuck: Yes, and then Notepad plus, plus! 11:39 – Guest: Those days are gone. If you want to build a website you go to a company that does that now. The guest refers to Kubernetes, Ruby, HTML, Sequel and much more! 12:55 – Guest: I see the new developers getting overwhelmed in the beginning they need to learn 10 languages at once. I am fortunate to have come into the industry when I did. I don’t envy them. 13:56 – Chuck: Talking about how complicated the Web is getting. What led you to Ruby on Rails? 14:12 – Guest: In 2004 – I just finished a Java project that had roughly 100,000 lines of configuration!! Everything in Java at that point was XML configuration. I didn’t like debugging XML – and it wasn’t fun. I was refiguring out my career. Everything at the time was XML and more XML! I didn’t want to be in that world. I quit developing completely for 2 years. I worked as an internship in a recording studio for a while. I got to work with a lot of great people, but there was a lack of money and lack of general employment. We wanted to have kids and at the end of 2005 a friend mentioned Ruby on Rails. He told me that it’s NOT Java and that I would love it. I installed it and found an old cookbook tutorial and immediately I said: THAT’s what I want programming to be. When did you pick up Ruby on Rails? 18:14 – Chuck: I picked it up when I worked for...and I was doing Q&A customer service. 19:05 – Guest: Yeah, he hooked me for sure – that jerk! I really got into this book! Check it out! It changed my career and web development entirely. For all the grief we give Rails it did change the world. 20:40 – Chuck: What have you done in Ruby that you are particularly proud of? 20:50 – Guest: Most proud running Boston RB. We had so many people show up! 22:49 – Chuck: You talk about those things and that’s why I ask the question in the first place. And it turns out that: I did THIS thing in the community! I like talking to people and helping people. 23:31 – Guest: Yes, I get to work and help people all around the world. Sweet! I get to go in and help people. It gives me the time to contribute to open source and go to Slack. I have a career based around: Helping People! I like the code that I created, but I like the community stuff I have done over the years. 24:31 – Chuck: Yep my career coach wanted me to create a vision/mission statement for DevChat T.V. We make a difference and people make career changes b/c they are getting help and information 25:23 – Guest: Making a living off of helping people is a great feeling! 25:44 – Guest: The contents of the book are wildly out-of-date, but the origin story is hysterical. I went to a conference in 2008 and was just laid-off in October 2008. I got into a hot tub in Orlando and someone started talking to me about my recent talk. By the way, never write a book – don’t do it! 28:18 – Chuck: Sounds like a movie plot to me! 28:25 – Guest: Oh no – that’s not a good movie idea! 28:50 – Chuck and Guest go back-and-forth with a pretend movie: who would play you? 29:15 – Chuck: Let’s talk about PaperCall? 29:23 – Guest: I hated that (for conferences) you had to enter in a lot of different forms (2-3 proposals) for one conference. This bothered me and was very time-consuming. 31:45 – Guest & Chuck talking about saving time. 32:37 – Chuck: What are you doing now? 32:42 – Guest: Yeah, I get to go around and help engineers and open source exclusively. 33:48 – Chuck: How did you get into GO? 33:53 – Guest: In about 2012 I started looking into GO. The guest talks about the benefits and why he likes GO! 36:28 – Guest: What you see is what you get in GO, which is what I like! 39:13 – Chuck: It is an interesting language, and I haven’t played around with it as much as I would like to. I love trying new things, and see how it solves problems. 40:30 – Guest. 42:00 – Chuck: Picks! 42:06 – Advertisement – Fresh Books! END – CacheFly Links: Ruby Elixir Rails Rust Python PHP Kubernetes React Native Ruby Motion Mark’s GitHub Mark’s Twitter PaperCall.io Sponsors: Get a Coder Job Cache Fly Fresh Books Picks: Chuck Book: Ultra Marathon Man Mark GO! GoBuffalo.io Boston RB Jim Weirich – In Memory of... Jim’s Bio
Panel: Charles Max Wood Guest: Michael King This week on My Ruby Story, Chuck talks with Michael King who is a developer, an enthusiast for natural languages, developing, and mathematics. Charles and Michael talk about his background, and past/current projects that Michael is working on right now. Other topics of discussion include Ruby, Rails, Audacity, PHP, RubyMotion, and React Native. Check it out! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:58 – Chuck: Say “hi” Michael! Introduce yourself. 1:12 – Michael: I am a big language learner: Spanish, Portuguese and Chinese. I learned through T.V. and music. I decided to build an app that helped with languages. I started doing it. 1:50 – Chuck: You hired a developer and had no idea what the developer what was doing. How do you make that transition? They just go with it – right? How did you decide: no, I have to understand THIS. 2:25 – Guest: It’s either I am really into it or I am NOT into it. I have been always very good with mathematics. The computer broke when I was in school and the only option we had were these...He was writing all these variables and I loved variables. The guest talks about Ruby, Rails, and Audacity! 4:08 – Chuck: You talk about natural languages – I see the correlation sometimes and sometimes I don’t. I learned French in school, and then I became fluent in Italian during my Mormon missionary trips. 4:56 – Guest: I am reading this book right now and you have to understand the technicians’ role in order to help lead him. The guest talks about the differences between coding, natural languages, and mathematics. 5:50 – Chuck: Did you let your developer go? Or did you keep him around? 6:03 – Guest: I let him go actually b/c he was on for a part-time basis. I started coding myself. I got help from friends and I got help from a lot of other people. I would ask them tons of questions and form a friendly relationship with them. From there, it snowed-ball from there! 6:57 – Guest: From that experience, I learned a lot. If I had to REDO what I did originally, then I would have done the following things differently... 7:44 – Chuck: I can identify with that – I was a freelancer for 8-9 years. I would build something and then they say: that’s not what we hired you to build. 8:10 – Guest: They wonder why they are getting this feedback? 8:22- Chuck: Why Ruby on Rails? 8:27 – Guest: I didn’t know the difference between mobile frameworks and web frameworks. 9:01 – Chuck: Yeah I don’t like the word “dumb” either. 9:09 – Guest: Ruby was very smooth and I liked it. I got addicted to the process through the Rails way and the Ruby syntax. 9:46 – Chuck: Same for me. I have done PHP before but when I got into Rails it naturally flowed into the way I wanted to work on stuff. I get it. 10:12 – Chuck: What are you working on now? 10:19 – Guest: This project that I have been working on now for 1.5 years. 11:41 – Chuck: You talked about how you picked up React Native. 11:52 – Guest: Yes, yes. 12:39 – Chuck: How did you settle on React Native? 12:50 – Guest talks about the Spanish and English languages. 13:25 – Chuck: I am curious – why didn’t you go with RubyMotion? 13:34 – Guest: I didn’t know anyone that could help me honestly. Also, I didn’t think it was going to be EASY to learn for me. 14:02 – Chuck: Is Reactive Native your main focus? 14:08 – Guest: No building just designing and putting it in front of people. I want to get a prototype to get more funding. I want to know EXACTLY what we are building. 14:40 – Chuck: For entrepreneurs, any advice for anything to get this rolling? 14:56 – Guest: If I had to do it again I would draw it out on paper and figure out how to get to MVP right away. I would try to get validation right away from not building too much 15:47 – Chuck: I am working on a service to help podcasters. They see that that I run 15 shows through DevChat.TV. If I can solve those three problems then I am golden: monetization and/or production. For scheduling guests it’s a pain point for most podcasters. 17:36 – Chuck: Some of the validation for me is talking to people through conferences and other venues. Main question is: What are you doing for scheduling? It takes a bunch of time. Post to where people will get your content. Have your guests promote it, too! 20:05 – Guest: Inviting people to the show. 20:13 – Chuck: This is the 16th interview this week so far! To give you an idea! 21:16 – Guest: You lost me along the way only b/c I don’t do podcasting. You know the problem b/c you are doing it, and you are within the field. 21:42 – Chuck: The more I talk to people the more I get ideas and such. 22:00 – Guest. 22:06 – Chuck: They are worried that their ideas are going to get stolen. 22:15 – Chuck: It’s interesting to see where it goes. I have 2 more interviews after this. Michael, you see and say: what solutions can I provide? 23:03 – Chuck: Did we get into your mobile app then? 23:14 – Guest: It was really hard for me, but now I love coding. Getting it in front of people and testing it. I am trying to keep my education going. I learn by doing and learning by being thrown in to the fire. I am doing a free code camp now. Any suggestions, Chuck that you could offer? 24:35 – Chuck: Learning how to prioritize. What are you aiming at, and what goal are you trying to achieve? I want to make a video course on HOW to stay current? 25:12 – Chuck: Where can people find you? 25:18 – Guest: Twitter! There really isn’t an easy way to find me online – something I should probably fix. 25:28 – Advertisement – Fresh Books! END – CacheFly Links: Ruby Elixir Rails Rust Python PHP React Native Ruby Motion Sponsors: Get a Coder Job Cache Fly Fresh Books Picks: Chuck Vue.js – frontend framework John Papa – Slots in Google Calendar (saying goodbye to Schedule Once) Michael Michael’s Prototype
Panel: Charles Max Wood Guest: Michael King This week on My Ruby Story, Chuck talks with Michael King who is a developer, an enthusiast for natural languages, developing, and mathematics. Charles and Michael talk about his background, and past/current projects that Michael is working on right now. Other topics of discussion include Ruby, Rails, Audacity, PHP, RubyMotion, and React Native. Check it out! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:58 – Chuck: Say “hi” Michael! Introduce yourself. 1:12 – Michael: I am a big language learner: Spanish, Portuguese and Chinese. I learned through T.V. and music. I decided to build an app that helped with languages. I started doing it. 1:50 – Chuck: You hired a developer and had no idea what the developer what was doing. How do you make that transition? They just go with it – right? How did you decide: no, I have to understand THIS. 2:25 – Guest: It’s either I am really into it or I am NOT into it. I have been always very good with mathematics. The computer broke when I was in school and the only option we had were these...He was writing all these variables and I loved variables. The guest talks about Ruby, Rails, and Audacity! 4:08 – Chuck: You talk about natural languages – I see the correlation sometimes and sometimes I don’t. I learned French in school, and then I became fluent in Italian during my Mormon missionary trips. 4:56 – Guest: I am reading this book right now and you have to understand the technicians’ role in order to help lead him. The guest talks about the differences between coding, natural languages, and mathematics. 5:50 – Chuck: Did you let your developer go? Or did you keep him around? 6:03 – Guest: I let him go actually b/c he was on for a part-time basis. I started coding myself. I got help from friends and I got help from a lot of other people. I would ask them tons of questions and form a friendly relationship with them. From there, it snowed-ball from there! 6:57 – Guest: From that experience, I learned a lot. If I had to REDO what I did originally, then I would have done the following things differently... 7:44 – Chuck: I can identify with that – I was a freelancer for 8-9 years. I would build something and then they say: that’s not what we hired you to build. 8:10 – Guest: They wonder why they are getting this feedback? 8:22- Chuck: Why Ruby on Rails? 8:27 – Guest: I didn’t know the difference between mobile frameworks and web frameworks. 9:01 – Chuck: Yeah I don’t like the word “dumb” either. 9:09 – Guest: Ruby was very smooth and I liked it. I got addicted to the process through the Rails way and the Ruby syntax. 9:46 – Chuck: Same for me. I have done PHP before but when I got into Rails it naturally flowed into the way I wanted to work on stuff. I get it. 10:12 – Chuck: What are you working on now? 10:19 – Guest: This project that I have been working on now for 1.5 years. 11:41 – Chuck: You talked about how you picked up React Native. 11:52 – Guest: Yes, yes. 12:39 – Chuck: How did you settle on React Native? 12:50 – Guest talks about the Spanish and English languages. 13:25 – Chuck: I am curious – why didn’t you go with RubyMotion? 13:34 – Guest: I didn’t know anyone that could help me honestly. Also, I didn’t think it was going to be EASY to learn for me. 14:02 – Chuck: Is Reactive Native your main focus? 14:08 – Guest: No building just designing and putting it in front of people. I want to get a prototype to get more funding. I want to know EXACTLY what we are building. 14:40 – Chuck: For entrepreneurs, any advice for anything to get this rolling? 14:56 – Guest: If I had to do it again I would draw it out on paper and figure out how to get to MVP right away. I would try to get validation right away from not building too much 15:47 – Chuck: I am working on a service to help podcasters. They see that that I run 15 shows through DevChat.TV. If I can solve those three problems then I am golden: monetization and/or production. For scheduling guests it’s a pain point for most podcasters. 17:36 – Chuck: Some of the validation for me is talking to people through conferences and other venues. Main question is: What are you doing for scheduling? It takes a bunch of time. Post to where people will get your content. Have your guests promote it, too! 20:05 – Guest: Inviting people to the show. 20:13 – Chuck: This is the 16th interview this week so far! To give you an idea! 21:16 – Guest: You lost me along the way only b/c I don’t do podcasting. You know the problem b/c you are doing it, and you are within the field. 21:42 – Chuck: The more I talk to people the more I get ideas and such. 22:00 – Guest. 22:06 – Chuck: They are worried that their ideas are going to get stolen. 22:15 – Chuck: It’s interesting to see where it goes. I have 2 more interviews after this. Michael, you see and say: what solutions can I provide? 23:03 – Chuck: Did we get into your mobile app then? 23:14 – Guest: It was really hard for me, but now I love coding. Getting it in front of people and testing it. I am trying to keep my education going. I learn by doing and learning by being thrown in to the fire. I am doing a free code camp now. Any suggestions, Chuck that you could offer? 24:35 – Chuck: Learning how to prioritize. What are you aiming at, and what goal are you trying to achieve? I want to make a video course on HOW to stay current? 25:12 – Chuck: Where can people find you? 25:18 – Guest: Twitter! There really isn’t an easy way to find me online – something I should probably fix. 25:28 – Advertisement – Fresh Books! END – CacheFly Links: Ruby Elixir Rails Rust Python PHP React Native Ruby Motion Sponsors: Get a Coder Job Cache Fly Fresh Books Picks: Chuck Vue.js – frontend framework John Papa – Slots in Google Calendar (saying goodbye to Schedule Once) Michael Michael’s Prototype
Panel: Charles Max Wood Guest: Michael King This week on My Ruby Story, Chuck talks with Michael King who is a developer, an enthusiast for natural languages, developing, and mathematics. Charles and Michael talk about his background, and past/current projects that Michael is working on right now. Other topics of discussion include Ruby, Rails, Audacity, PHP, RubyMotion, and React Native. Check it out! In particular, we dive pretty deep on: 0:00 – Get A Coder Job! 0:58 – Chuck: Say “hi” Michael! Introduce yourself. 1:12 – Michael: I am a big language learner: Spanish, Portuguese and Chinese. I learned through T.V. and music. I decided to build an app that helped with languages. I started doing it. 1:50 – Chuck: You hired a developer and had no idea what the developer what was doing. How do you make that transition? They just go with it – right? How did you decide: no, I have to understand THIS. 2:25 – Guest: It’s either I am really into it or I am NOT into it. I have been always very good with mathematics. The computer broke when I was in school and the only option we had were these...He was writing all these variables and I loved variables. The guest talks about Ruby, Rails, and Audacity! 4:08 – Chuck: You talk about natural languages – I see the correlation sometimes and sometimes I don’t. I learned French in school, and then I became fluent in Italian during my Mormon missionary trips. 4:56 – Guest: I am reading this book right now and you have to understand the technicians’ role in order to help lead him. The guest talks about the differences between coding, natural languages, and mathematics. 5:50 – Chuck: Did you let your developer go? Or did you keep him around? 6:03 – Guest: I let him go actually b/c he was on for a part-time basis. I started coding myself. I got help from friends and I got help from a lot of other people. I would ask them tons of questions and form a friendly relationship with them. From there, it snowed-ball from there! 6:57 – Guest: From that experience, I learned a lot. If I had to REDO what I did originally, then I would have done the following things differently... 7:44 – Chuck: I can identify with that – I was a freelancer for 8-9 years. I would build something and then they say: that’s not what we hired you to build. 8:10 – Guest: They wonder why they are getting this feedback? 8:22- Chuck: Why Ruby on Rails? 8:27 – Guest: I didn’t know the difference between mobile frameworks and web frameworks. 9:01 – Chuck: Yeah I don’t like the word “dumb” either. 9:09 – Guest: Ruby was very smooth and I liked it. I got addicted to the process through the Rails way and the Ruby syntax. 9:46 – Chuck: Same for me. I have done PHP before but when I got into Rails it naturally flowed into the way I wanted to work on stuff. I get it. 10:12 – Chuck: What are you working on now? 10:19 – Guest: This project that I have been working on now for 1.5 years. 11:41 – Chuck: You talked about how you picked up React Native. 11:52 – Guest: Yes, yes. 12:39 – Chuck: How did you settle on React Native? 12:50 – Guest talks about the Spanish and English languages. 13:25 – Chuck: I am curious – why didn’t you go with RubyMotion? 13:34 – Guest: I didn’t know anyone that could help me honestly. Also, I didn’t think it was going to be EASY to learn for me. 14:02 – Chuck: Is Reactive Native your main focus? 14:08 – Guest: No building just designing and putting it in front of people. I want to get a prototype to get more funding. I want to know EXACTLY what we are building. 14:40 – Chuck: For entrepreneurs, any advice for anything to get this rolling? 14:56 – Guest: If I had to do it again I would draw it out on paper and figure out how to get to MVP right away. I would try to get validation right away from not building too much 15:47 – Chuck: I am working on a service to help podcasters. They see that that I run 15 shows through DevChat.TV. If I can solve those three problems then I am golden: monetization and/or production. For scheduling guests it’s a pain point for most podcasters. 17:36 – Chuck: Some of the validation for me is talking to people through conferences and other venues. Main question is: What are you doing for scheduling? It takes a bunch of time. Post to where people will get your content. Have your guests promote it, too! 20:05 – Guest: Inviting people to the show. 20:13 – Chuck: This is the 16th interview this week so far! To give you an idea! 21:16 – Guest: You lost me along the way only b/c I don’t do podcasting. You know the problem b/c you are doing it, and you are within the field. 21:42 – Chuck: The more I talk to people the more I get ideas and such. 22:00 – Guest. 22:06 – Chuck: They are worried that their ideas are going to get stolen. 22:15 – Chuck: It’s interesting to see where it goes. I have 2 more interviews after this. Michael, you see and say: what solutions can I provide? 23:03 – Chuck: Did we get into your mobile app then? 23:14 – Guest: It was really hard for me, but now I love coding. Getting it in front of people and testing it. I am trying to keep my education going. I learn by doing and learning by being thrown in to the fire. I am doing a free code camp now. Any suggestions, Chuck that you could offer? 24:35 – Chuck: Learning how to prioritize. What are you aiming at, and what goal are you trying to achieve? I want to make a video course on HOW to stay current? 25:12 – Chuck: Where can people find you? 25:18 – Guest: Twitter! There really isn’t an easy way to find me online – something I should probably fix. 25:28 – Advertisement – Fresh Books! END – CacheFly Links: Ruby Elixir Rails Rust Python PHP React Native Ruby Motion Sponsors: Get a Coder Job Cache Fly Fresh Books Picks: Chuck Vue.js – frontend framework John Papa – Slots in Google Calendar (saying goodbye to Schedule Once) Michael Michael’s Prototype
Panel: David Kimura Eric Berry In this episode of Ruby Rogues, the panelists talk amongst themselves about their favorite software, equipment, and apps. Both Eric and David thoroughly share their preferred picks within these categories, and they explain how and why they use the specified item. Check out today’s episode to hear more! Show Topics: 0:00 – Advertisement: Sentry.io 1:03 – David: Welcome! Today, Chuck is not feeling well. I am David and today we have Eric Berry on our panel today. It is just the two of us today. I want to talk about our development environment. What is your setup like? Do you have an office space and your hardware? 1:58 – Eric: I Have a room in my basement that has everything that I need. I do work from home. There is my guitar, my geek toys and more. For my hardware I am using 2017 MacBook Pro (16 GB of ram). The 13-inch is convenient, but I upgraded b/c I do a lot of traveling. I do pull the iPad out and use DUET. You no longer have to use a cord. I have a monitor that is 30-inches and it’s gorgeous. That is my hardware setup. I am not a mechanical keyboard guy, and I stick with the Apple super flat keyboard. I do use Bestand – it’s a holster for the keyboard and the track pad. What do you have? 4:35 – David: I have a Frankenstein setup. My needs change, over time, and when that changes my hardware changes. Back in the day I did not have a Mac and I used a Windows machine. I used to be a gamer, but then met my wife and then stopped b/c she didn’t like for me to waste time. My setup is more proper. I have a baseline iMac Pro b/c there was a great deal of $1,000 off. The other option was an iMac. I like the desktop b/c that’s where I do work – at home. It was a $4,000 investment. I am on my computer ALL the time it was worth it to me. I got the wall-mount for me, and I have more monitors wall-mounted, too. 8:00 – David: That is my monitor and computer setup. I have an eco-rhythmic keyboard b/c of childhood injuries. I have a really old Microsoft keyboard from 2005 something. It was cheap but I like the style of it. For my mouse I have a Logitech mouse. I love the feel of this thing. It has a side scroll left and right, and up and down. Especially when I am looking at code. It helps with my video editing, too. My mouse is my favorite to-date. I don’t have too much plugged into the Mac. I have a GoDrive, which has everything on it – my whole life’s work is on there. If there is ever an emergency I know to grab that. Back things up in case of an emergency would be my tips to you all. 11:40 – Eric: I have struggled with backing things up actually. The problem that I have is that I am constantly moving my laptop. I have this guilt and fear of doing it wrong. 12:33 – David: I have this work laptop – I don’t back that up every day. David gives Eric his suggestions in regards to backing files up. David mentions Back Blaze. 14:05 – Eric: That makes sense. I live in the Apple eco-system. I have my phone, watch, 40 iPads, laptop – everything backs up to the Cloud. The date we are recording this is 10/30/18. Apple just announced a new upgrade. I feel like this could compete with an actual laptop computer. Eric asks David a question. 15:35 – David: ...My main problem with that is that you might already have a developmental machine. It’s a stationary computer then it’s not feasible to take on the go. I do have an iPad Pro and I will take that on the go. I can login to my home network. BLINK – I used on my iPad Pro. David continues to talk about his setup. 19:00 – Eric: I kind of agree with you. I have seen it used quite a bit. My brother does everything online for his job. The pros are that if you are training, and his company is configured that way. The pros is that you can code from anywhere on anyone’s computer. I am glad that it DOES exist. It’s not Cloud9 but someone does offer... 20:20 – David: I think going to a solo screen does hurt my productivity – working on the iPad vs. working on the computer. I could get faster and faster but only to a certain degree. If you have the resources – then I don’t think it’s sustainable. However, if you don’t have the resources it’s better than nothing. At least you are coding and that’s important. 22:15 – Eric: I think of the audience we cater to with Ruby Rogues. I wonder if our listeners are strapped for cash or if they do have the resources to get the job done? 22:48 – David: If you don’t have a lot of money, you don’t have to buy a Mac. If Cloud hosting isn’t your thing there are different options. You have DOCKER, and use Windows as your main editor, and the WSL. I wanted to do a test – I bout a laptop for $500-$700 and you can get away with doing what you need to do. Learning how to program and code with what you have is great! 25:00 – Advertisement – Fresh Books! 26:05 – Eric: Let’s talk about the software developer environment. Nate Hopkins isn’t on today, but you can’t change his mind – I am VEM all the way. I think Cuck is EMAX. 26:43 – Eric: What do you do? 26:45 – David: I use VS code. David talks about the benefits of using VS code. 27:37 – Eric: Yes, 100%. I met the lead engineer behind VS code. They just made a new announcement. I have been using VS code for quite a while now. The integrated terminal and other features are awesome. Pulling me out of Sublime Text was a really, really hard thing for me. 29:28 – David: Sublime text, yes, but I got tired of the 40-year long beta, and the lack of expanding it, too. VS code has won my heart over. 30:53 – Eric: My guess is that they are going to leave it alone. I am sure they will connect the 2 teams. Think of how much work has gone into ATOM. That would be a hard pill to swallow. 31:20 – David: At the end of the day, though, it is a company. You don’t need 2 different editors when they do the same thing. 31:40 – Eric: I would have to disagree with you. Maybe they won’t merge the 2 but they just become different between ATOM (React and React Native) and... 32:22 – David: Why would a company cancel something only have 1 season? (Clears throat...Fox!) 32:58 – Eric: I open very large files with Sublime. Sublime handles this very easily. This goes back to: why am I opening up very large files? 33:31 – David: It’s a log file don’t lie. 33:40 – David: What browser do you use? Safari? 34:03 – Eric: Safari is nice for non-developers. Safari is lightweight and very fast. I have been a browser whore. I go from bedroom to bedroom from Opera to Firefox to Chrome. I fall into the Chrome field though. I have a problem with Chrome, though, and that it knows me too well. Google can sell my data and they do. 37:14 – David: With BRAVE, weren’t they doing something with the block chain and bit coin to reward you for browsing? 37:38 – Eric: Yeah I think that’s being run by... 38:03 – David: I still use CHROME b/c I like the extensions. It’s important to know why you are picking a certain browser. When you are talking about development you need to know who your target audience is. What kind of apps do you use? 39:54 – Eric: It’s interesting to see how much traffic the Android Browser gets. You want to switch over to other parts? For my tech software...I use Polymail.io for email. I use THINGS to keep me on-track, I use SLACK, BRAVE BROSWER, iTerm3 and MERT. I use FANTASTICO (calendar), and I use BEAR (for my note taking). What about you? 41:21 – David: I use iTerm3, too. I’m on 3 different Slack channels. I have been using DISCORD. Other tools that I use are SPECTACLE (extension) among others. I try to keep it slim and simple, though. Another one is EasyRez (free download) and you can adjust the screen resolution on your desktop monitors. It’s important to target my audience better. I do like PARALLELS, too. 44:24 – David continues: Screenflow, Apple Motion, and Adobe After Effects CC. 45:04 – Eric: I use 1 PASSWORD and BETA BASE. 46:04 – David: Have you heard of Last Pass? 46:15 – Eric: Oh sure! I have been using though 1 Password and I guess there some loyalty there. 46:54 – David asks Eric a question about 1 Password about pricing. 47:12 – Eric: I want to pay with money than with something else. 47:23 – David: It’s owned by LogMeIn, and they have tons of experience with security. 48:00 – Eric: I am going to put an article here that compares all these different apps so you can see the similarities and differences side-by-side. 48:40 – David: Anything else? Banking passwords? 48:54 – Eric: Nah, I am excited to see where we are. I like Mojave for the desktop but I don’t like it for the constant number of resets that I’ve had to do. I love what I do. 49:34 – David: Yeah, I agree. I haven’t experienced any major setbacks, yet. 49:55 – Picks! 50:03 – Eric: I think this whole episode has been PICKS! 50:15 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular React React Native Komodo Bestand Duet Atom.io EasyRez Polymail.io Docker Adobe After Effects CC LogMeIn Brave 1 Password iTerm3 VS CODE iPad Pro Last Pass GoDrive Mojave EMAX Back Blaze Discord Sublime Text AWS Cloud9 StatCounter GitHub: Mert Bear App Process.st Pi-Hole Sponsors: Sentry Cache Fly Fresh Books Picks: Dave ProxMox Pi-Hole Eric Open Source Funders
Panel: David Kimura Eric Berry In this episode of Ruby Rogues, the panelists talk amongst themselves about their favorite software, equipment, and apps. Both Eric and David thoroughly share their preferred picks within these categories, and they explain how and why they use the specified item. Check out today’s episode to hear more! Show Topics: 0:00 – Advertisement: Sentry.io 1:03 – David: Welcome! Today, Chuck is not feeling well. I am David and today we have Eric Berry on our panel today. It is just the two of us today. I want to talk about our development environment. What is your setup like? Do you have an office space and your hardware? 1:58 – Eric: I Have a room in my basement that has everything that I need. I do work from home. There is my guitar, my geek toys and more. For my hardware I am using 2017 MacBook Pro (16 GB of ram). The 13-inch is convenient, but I upgraded b/c I do a lot of traveling. I do pull the iPad out and use DUET. You no longer have to use a cord. I have a monitor that is 30-inches and it’s gorgeous. That is my hardware setup. I am not a mechanical keyboard guy, and I stick with the Apple super flat keyboard. I do use Bestand – it’s a holster for the keyboard and the track pad. What do you have? 4:35 – David: I have a Frankenstein setup. My needs change, over time, and when that changes my hardware changes. Back in the day I did not have a Mac and I used a Windows machine. I used to be a gamer, but then met my wife and then stopped b/c she didn’t like for me to waste time. My setup is more proper. I have a baseline iMac Pro b/c there was a great deal of $1,000 off. The other option was an iMac. I like the desktop b/c that’s where I do work – at home. It was a $4,000 investment. I am on my computer ALL the time it was worth it to me. I got the wall-mount for me, and I have more monitors wall-mounted, too. 8:00 – David: That is my monitor and computer setup. I have an eco-rhythmic keyboard b/c of childhood injuries. I have a really old Microsoft keyboard from 2005 something. It was cheap but I like the style of it. For my mouse I have a Logitech mouse. I love the feel of this thing. It has a side scroll left and right, and up and down. Especially when I am looking at code. It helps with my video editing, too. My mouse is my favorite to-date. I don’t have too much plugged into the Mac. I have a GoDrive, which has everything on it – my whole life’s work is on there. If there is ever an emergency I know to grab that. Back things up in case of an emergency would be my tips to you all. 11:40 – Eric: I have struggled with backing things up actually. The problem that I have is that I am constantly moving my laptop. I have this guilt and fear of doing it wrong. 12:33 – David: I have this work laptop – I don’t back that up every day. David gives Eric his suggestions in regards to backing files up. David mentions Back Blaze. 14:05 – Eric: That makes sense. I live in the Apple eco-system. I have my phone, watch, 40 iPads, laptop – everything backs up to the Cloud. The date we are recording this is 10/30/18. Apple just announced a new upgrade. I feel like this could compete with an actual laptop computer. Eric asks David a question. 15:35 – David: ...My main problem with that is that you might already have a developmental machine. It’s a stationary computer then it’s not feasible to take on the go. I do have an iPad Pro and I will take that on the go. I can login to my home network. BLINK – I used on my iPad Pro. David continues to talk about his setup. 19:00 – Eric: I kind of agree with you. I have seen it used quite a bit. My brother does everything online for his job. The pros are that if you are training, and his company is configured that way. The pros is that you can code from anywhere on anyone’s computer. I am glad that it DOES exist. It’s not Cloud9 but someone does offer... 20:20 – David: I think going to a solo screen does hurt my productivity – working on the iPad vs. working on the computer. I could get faster and faster but only to a certain degree. If you have the resources – then I don’t think it’s sustainable. However, if you don’t have the resources it’s better than nothing. At least you are coding and that’s important. 22:15 – Eric: I think of the audience we cater to with Ruby Rogues. I wonder if our listeners are strapped for cash or if they do have the resources to get the job done? 22:48 – David: If you don’t have a lot of money, you don’t have to buy a Mac. If Cloud hosting isn’t your thing there are different options. You have DOCKER, and use Windows as your main editor, and the WSL. I wanted to do a test – I bout a laptop for $500-$700 and you can get away with doing what you need to do. Learning how to program and code with what you have is great! 25:00 – Advertisement – Fresh Books! 26:05 – Eric: Let’s talk about the software developer environment. Nate Hopkins isn’t on today, but you can’t change his mind – I am VEM all the way. I think Cuck is EMAX. 26:43 – Eric: What do you do? 26:45 – David: I use VS code. David talks about the benefits of using VS code. 27:37 – Eric: Yes, 100%. I met the lead engineer behind VS code. They just made a new announcement. I have been using VS code for quite a while now. The integrated terminal and other features are awesome. Pulling me out of Sublime Text was a really, really hard thing for me. 29:28 – David: Sublime text, yes, but I got tired of the 40-year long beta, and the lack of expanding it, too. VS code has won my heart over. 30:53 – Eric: My guess is that they are going to leave it alone. I am sure they will connect the 2 teams. Think of how much work has gone into ATOM. That would be a hard pill to swallow. 31:20 – David: At the end of the day, though, it is a company. You don’t need 2 different editors when they do the same thing. 31:40 – Eric: I would have to disagree with you. Maybe they won’t merge the 2 but they just become different between ATOM (React and React Native) and... 32:22 – David: Why would a company cancel something only have 1 season? (Clears throat...Fox!) 32:58 – Eric: I open very large files with Sublime. Sublime handles this very easily. This goes back to: why am I opening up very large files? 33:31 – David: It’s a log file don’t lie. 33:40 – David: What browser do you use? Safari? 34:03 – Eric: Safari is nice for non-developers. Safari is lightweight and very fast. I have been a browser whore. I go from bedroom to bedroom from Opera to Firefox to Chrome. I fall into the Chrome field though. I have a problem with Chrome, though, and that it knows me too well. Google can sell my data and they do. 37:14 – David: With BRAVE, weren’t they doing something with the block chain and bit coin to reward you for browsing? 37:38 – Eric: Yeah I think that’s being run by... 38:03 – David: I still use CHROME b/c I like the extensions. It’s important to know why you are picking a certain browser. When you are talking about development you need to know who your target audience is. What kind of apps do you use? 39:54 – Eric: It’s interesting to see how much traffic the Android Browser gets. You want to switch over to other parts? For my tech software...I use Polymail.io for email. I use THINGS to keep me on-track, I use SLACK, BRAVE BROSWER, iTerm3 and MERT. I use FANTASTICO (calendar), and I use BEAR (for my note taking). What about you? 41:21 – David: I use iTerm3, too. I’m on 3 different Slack channels. I have been using DISCORD. Other tools that I use are SPECTACLE (extension) among others. I try to keep it slim and simple, though. Another one is EasyRez (free download) and you can adjust the screen resolution on your desktop monitors. It’s important to target my audience better. I do like PARALLELS, too. 44:24 – David continues: Screenflow, Apple Motion, and Adobe After Effects CC. 45:04 – Eric: I use 1 PASSWORD and BETA BASE. 46:04 – David: Have you heard of Last Pass? 46:15 – Eric: Oh sure! I have been using though 1 Password and I guess there some loyalty there. 46:54 – David asks Eric a question about 1 Password about pricing. 47:12 – Eric: I want to pay with money than with something else. 47:23 – David: It’s owned by LogMeIn, and they have tons of experience with security. 48:00 – Eric: I am going to put an article here that compares all these different apps so you can see the similarities and differences side-by-side. 48:40 – David: Anything else? Banking passwords? 48:54 – Eric: Nah, I am excited to see where we are. I like Mojave for the desktop but I don’t like it for the constant number of resets that I’ve had to do. I love what I do. 49:34 – David: Yeah, I agree. I haven’t experienced any major setbacks, yet. 49:55 – Picks! 50:03 – Eric: I think this whole episode has been PICKS! 50:15 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular React React Native Komodo Bestand Duet Atom.io EasyRez Polymail.io Docker Adobe After Effects CC LogMeIn Brave 1 Password iTerm3 VS CODE iPad Pro Last Pass GoDrive Mojave EMAX Back Blaze Discord Sublime Text AWS Cloud9 StatCounter GitHub: Mert Bear App Process.st Pi-Hole Sponsors: Sentry Cache Fly Fresh Books Picks: Dave ProxMox Pi-Hole Eric Open Source Funders
Panel: David Kimura Eric Berry In this episode of Ruby Rogues, the panelists talk amongst themselves about their favorite software, equipment, and apps. Both Eric and David thoroughly share their preferred picks within these categories, and they explain how and why they use the specified item. Check out today’s episode to hear more! Show Topics: 0:00 – Advertisement: Sentry.io 1:03 – David: Welcome! Today, Chuck is not feeling well. I am David and today we have Eric Berry on our panel today. It is just the two of us today. I want to talk about our development environment. What is your setup like? Do you have an office space and your hardware? 1:58 – Eric: I Have a room in my basement that has everything that I need. I do work from home. There is my guitar, my geek toys and more. For my hardware I am using 2017 MacBook Pro (16 GB of ram). The 13-inch is convenient, but I upgraded b/c I do a lot of traveling. I do pull the iPad out and use DUET. You no longer have to use a cord. I have a monitor that is 30-inches and it’s gorgeous. That is my hardware setup. I am not a mechanical keyboard guy, and I stick with the Apple super flat keyboard. I do use Bestand – it’s a holster for the keyboard and the track pad. What do you have? 4:35 – David: I have a Frankenstein setup. My needs change, over time, and when that changes my hardware changes. Back in the day I did not have a Mac and I used a Windows machine. I used to be a gamer, but then met my wife and then stopped b/c she didn’t like for me to waste time. My setup is more proper. I have a baseline iMac Pro b/c there was a great deal of $1,000 off. The other option was an iMac. I like the desktop b/c that’s where I do work – at home. It was a $4,000 investment. I am on my computer ALL the time it was worth it to me. I got the wall-mount for me, and I have more monitors wall-mounted, too. 8:00 – David: That is my monitor and computer setup. I have an eco-rhythmic keyboard b/c of childhood injuries. I have a really old Microsoft keyboard from 2005 something. It was cheap but I like the style of it. For my mouse I have a Logitech mouse. I love the feel of this thing. It has a side scroll left and right, and up and down. Especially when I am looking at code. It helps with my video editing, too. My mouse is my favorite to-date. I don’t have too much plugged into the Mac. I have a GoDrive, which has everything on it – my whole life’s work is on there. If there is ever an emergency I know to grab that. Back things up in case of an emergency would be my tips to you all. 11:40 – Eric: I have struggled with backing things up actually. The problem that I have is that I am constantly moving my laptop. I have this guilt and fear of doing it wrong. 12:33 – David: I have this work laptop – I don’t back that up every day. David gives Eric his suggestions in regards to backing files up. David mentions Back Blaze. 14:05 – Eric: That makes sense. I live in the Apple eco-system. I have my phone, watch, 40 iPads, laptop – everything backs up to the Cloud. The date we are recording this is 10/30/18. Apple just announced a new upgrade. I feel like this could compete with an actual laptop computer. Eric asks David a question. 15:35 – David: ...My main problem with that is that you might already have a developmental machine. It’s a stationary computer then it’s not feasible to take on the go. I do have an iPad Pro and I will take that on the go. I can login to my home network. BLINK – I used on my iPad Pro. David continues to talk about his setup. 19:00 – Eric: I kind of agree with you. I have seen it used quite a bit. My brother does everything online for his job. The pros are that if you are training, and his company is configured that way. The pros is that you can code from anywhere on anyone’s computer. I am glad that it DOES exist. It’s not Cloud9 but someone does offer... 20:20 – David: I think going to a solo screen does hurt my productivity – working on the iPad vs. working on the computer. I could get faster and faster but only to a certain degree. If you have the resources – then I don’t think it’s sustainable. However, if you don’t have the resources it’s better than nothing. At least you are coding and that’s important. 22:15 – Eric: I think of the audience we cater to with Ruby Rogues. I wonder if our listeners are strapped for cash or if they do have the resources to get the job done? 22:48 – David: If you don’t have a lot of money, you don’t have to buy a Mac. If Cloud hosting isn’t your thing there are different options. You have DOCKER, and use Windows as your main editor, and the WSL. I wanted to do a test – I bout a laptop for $500-$700 and you can get away with doing what you need to do. Learning how to program and code with what you have is great! 25:00 – Advertisement – Fresh Books! 26:05 – Eric: Let’s talk about the software developer environment. Nate Hopkins isn’t on today, but you can’t change his mind – I am VEM all the way. I think Cuck is EMAX. 26:43 – Eric: What do you do? 26:45 – David: I use VS code. David talks about the benefits of using VS code. 27:37 – Eric: Yes, 100%. I met the lead engineer behind VS code. They just made a new announcement. I have been using VS code for quite a while now. The integrated terminal and other features are awesome. Pulling me out of Sublime Text was a really, really hard thing for me. 29:28 – David: Sublime text, yes, but I got tired of the 40-year long beta, and the lack of expanding it, too. VS code has won my heart over. 30:53 – Eric: My guess is that they are going to leave it alone. I am sure they will connect the 2 teams. Think of how much work has gone into ATOM. That would be a hard pill to swallow. 31:20 – David: At the end of the day, though, it is a company. You don’t need 2 different editors when they do the same thing. 31:40 – Eric: I would have to disagree with you. Maybe they won’t merge the 2 but they just become different between ATOM (React and React Native) and... 32:22 – David: Why would a company cancel something only have 1 season? (Clears throat...Fox!) 32:58 – Eric: I open very large files with Sublime. Sublime handles this very easily. This goes back to: why am I opening up very large files? 33:31 – David: It’s a log file don’t lie. 33:40 – David: What browser do you use? Safari? 34:03 – Eric: Safari is nice for non-developers. Safari is lightweight and very fast. I have been a browser whore. I go from bedroom to bedroom from Opera to Firefox to Chrome. I fall into the Chrome field though. I have a problem with Chrome, though, and that it knows me too well. Google can sell my data and they do. 37:14 – David: With BRAVE, weren’t they doing something with the block chain and bit coin to reward you for browsing? 37:38 – Eric: Yeah I think that’s being run by... 38:03 – David: I still use CHROME b/c I like the extensions. It’s important to know why you are picking a certain browser. When you are talking about development you need to know who your target audience is. What kind of apps do you use? 39:54 – Eric: It’s interesting to see how much traffic the Android Browser gets. You want to switch over to other parts? For my tech software...I use Polymail.io for email. I use THINGS to keep me on-track, I use SLACK, BRAVE BROSWER, iTerm3 and MERT. I use FANTASTICO (calendar), and I use BEAR (for my note taking). What about you? 41:21 – David: I use iTerm3, too. I’m on 3 different Slack channels. I have been using DISCORD. Other tools that I use are SPECTACLE (extension) among others. I try to keep it slim and simple, though. Another one is EasyRez (free download) and you can adjust the screen resolution on your desktop monitors. It’s important to target my audience better. I do like PARALLELS, too. 44:24 – David continues: Screenflow, Apple Motion, and Adobe After Effects CC. 45:04 – Eric: I use 1 PASSWORD and BETA BASE. 46:04 – David: Have you heard of Last Pass? 46:15 – Eric: Oh sure! I have been using though 1 Password and I guess there some loyalty there. 46:54 – David asks Eric a question about 1 Password about pricing. 47:12 – Eric: I want to pay with money than with something else. 47:23 – David: It’s owned by LogMeIn, and they have tons of experience with security. 48:00 – Eric: I am going to put an article here that compares all these different apps so you can see the similarities and differences side-by-side. 48:40 – David: Anything else? Banking passwords? 48:54 – Eric: Nah, I am excited to see where we are. I like Mojave for the desktop but I don’t like it for the constant number of resets that I’ve had to do. I love what I do. 49:34 – David: Yeah, I agree. I haven’t experienced any major setbacks, yet. 49:55 – Picks! 50:03 – Eric: I think this whole episode has been PICKS! 50:15 – Advertisement: Get A Coder Job! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular React React Native Komodo Bestand Duet Atom.io EasyRez Polymail.io Docker Adobe After Effects CC LogMeIn Brave 1 Password iTerm3 VS CODE iPad Pro Last Pass GoDrive Mojave EMAX Back Blaze Discord Sublime Text AWS Cloud9 StatCounter GitHub: Mert Bear App Process.st Pi-Hole Sponsors: Sentry Cache Fly Fresh Books Picks: Dave ProxMox Pi-Hole Eric Open Source Funders
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 tool 3.) Automatic checker for all the best practices outlined in the community 4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code 7: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 VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App
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 tool 3.) Automatic checker for all the best practices outlined in the community 4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code 7: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 VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App
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 tool 3.) Automatic checker for all the best practices outlined in the community 4.) Formatter for Ruby code – you can feed it ugly code and it will spin out beautiful code 7: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 VRBO Find opportunities for R&R Rocket League Bozhidar Documentation for Markdown users Bear App
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more! Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”! 1:24 – Chuck: Give a brief introduction, please. 1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this? 2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now... 5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark? 5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back? 6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and... 8:09 – Chuck: He is using discourse, and we talked to him on a past episode. 8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues. 8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users? 9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information? 10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what? 10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe. 1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them. 12:04 – Chuck: This is off topic from benchmarking, but... 12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage? 15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that. I didn’t have any benchmarks to capture that. What I was failing to do was... I can talk about what I did do to help people if you want? 17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it? 18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me. 19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it? 20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem. I think back by the Ruby 3x3 goals... 21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is? 22:43 – Dan: What people care about is their application. You can look to see... 23:33 – Panel: Automating takes that pressure right off of me and I can do 23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or... 24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot. 24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage. 26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances. 27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too. 28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next. 29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything. 30:19 – Panel: I think that’s valuable, too. The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else. 31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same. 31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is. 31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...? 32:47 – Chuck: It’s generally to resolve an issue here or there. 32:57 – Panel. 33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point. 33:37 – Panel: If I did that my tests would never pass. 33:45 – Chuck. 33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower. 34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made. Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business. 35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow. 35:55 – Dan: The way you benchmark it... Benchmarking a gem or a library it’s how can it impact other people’s apps. And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on. 36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY. 37:37 – Chuck: Yeah, that was a great episode. 37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though. 37:57 – Chuck: Anything that you are working on within this space? 38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs. 39:05 – Chuck: How can people find you? 39:10 – Dan: My blog, Twitter, and GitHub! 39:22 – Chuck: M-A-Y-E-R. 39:36 – Picks! 39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: David Atomic Habits by James Clear Dave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more! Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”! 1:24 – Chuck: Give a brief introduction, please. 1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this? 2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now... 5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark? 5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back? 6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and... 8:09 – Chuck: He is using discourse, and we talked to him on a past episode. 8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues. 8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users? 9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information? 10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what? 10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe. 1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them. 12:04 – Chuck: This is off topic from benchmarking, but... 12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage? 15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that. I didn’t have any benchmarks to capture that. What I was failing to do was... I can talk about what I did do to help people if you want? 17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it? 18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me. 19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it? 20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem. I think back by the Ruby 3x3 goals... 21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is? 22:43 – Dan: What people care about is their application. You can look to see... 23:33 – Panel: Automating takes that pressure right off of me and I can do 23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or... 24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot. 24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage. 26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances. 27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too. 28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next. 29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything. 30:19 – Panel: I think that’s valuable, too. The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else. 31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same. 31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is. 31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...? 32:47 – Chuck: It’s generally to resolve an issue here or there. 32:57 – Panel. 33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point. 33:37 – Panel: If I did that my tests would never pass. 33:45 – Chuck. 33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower. 34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made. Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business. 35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow. 35:55 – Dan: The way you benchmark it... Benchmarking a gem or a library it’s how can it impact other people’s apps. And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on. 36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY. 37:37 – Chuck: Yeah, that was a great episode. 37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though. 37:57 – Chuck: Anything that you are working on within this space? 38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs. 39:05 – Chuck: How can people find you? 39:10 – Dan: My blog, Twitter, and GitHub! 39:22 – Chuck: M-A-Y-E-R. 39:36 – Picks! 39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: David Atomic Habits by James Clear Dave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Dan Mayer In this episode of Ruby Rogues, the panel talks with Dan Mayer who believes that small distributed software teams can make a large impact. Dan loves Ruby, distributed systems, OSS, and making development easier. The panel and Dan talk about performance and benchmarking. Check out today’s episode to learn more! Show Topics: 0:00 – Sentry.IO – Advertisement! 1:07 – Chuck: Our panel is Dave, David, myself, and our guest is Dan Mayer. Say “Hi”! 1:24 – Chuck: Give a brief introduction, please. 1:32 – Dan gives his background and what he currently is working on. 1:53 – Chuck: We wanted to talk to you about benchmarking and performance. Tell us how you got into this? 2:28 – Dan: It has been an interesting timeline for me. About seven years I worked for a large site that had a legacy Rails app. It got a lot of dusty corners over the years and we removed dead code, and removed bugs and confusion for the consumer. We were finding ways to tweak it and not impacting your users. I was using Trace Point but the overhead was quite significant. I moved away from that project but found that I found a need for it, again, a few years later. I actually tried to modify...and basically Eric said “prove that it is slow.” It really wasn’t the type of bottleneck that I was seeing. Since then I am rewriting it. I removed one bottleneck and now... 5:00 – Chuck: ...if that number gets smaller then Ruby is doing well. Is it really that simple? How do you benchmark? 5:15 – Dan answers the question. 6:40 – Panel: How do you benchmark things front to back? 6:49 – Dan: I look at benchmarking in different layers. You can see the overall impact in the broad range. If you want to see specific things then that’s a little trickier. For Ruby 3x3 he has been working on a Rails Benchmark, and that’s Noah. He has a sample Rails app and... 8:09 – Chuck: He is using discourse, and we talked to him on a past episode. 8:20 – Dan: My original plan was to insert my gem within that project. However, I ran into a few issues and Noah and I are working on that because of the issues. 8:57 – Panel: How does the coverband gem – how does it provide security so you don’t leak out information to in-users? 9:12 – Dan answers the question. 9:54 – Panel: Then you can build whatever views you want to trace back that sort of information? 10:02 – Dan answers the question. 10:30 – Chuck: Is it running benchmarks against every method you have in your app or what? 10:40 – Dan answers question. 11:27 – Panel: I like when I can remove all of the code I feel safe. 1:37 – Dan: The gem was driven by the fact that I love to delete code. These old files have been sitting around – they aren’t valid – let’s get rid of them. 12:04 – Chuck: This is off topic from benchmarking, but... 12:43 – Dan: ...to get that feature at run time it can hurt your performance. 15:20 – Panel: Is there added memory usage? 15:27 – Dan: I rewrote the library around coverage and I put it out. It worked well for my company and myself. But people were saying that they got a huge performance hit. I went from needing to sample to capture...the new bottleneck was collecting the data all of the code usage of your gems and...it went from just recording your custom code to all Ruby code. Where it was slowing down was reporting that. I didn’t have any benchmarks to capture that. What I was failing to do was... I can talk about what I did do to help people if you want? 17:41 – Chuck: Looking at how much storage is my app using or how much...How can you even begin to isolate it? 18:11 – Dan: On all the different types of benchmarking – I know there is a benchmarking memory increase. I haven’t benchmarked that, yet. To get at these different levels, how do we ensure that’s fast? It was a new challenge to me. 19:45 – Panel: It sounds like this has become a practice over the years. Is that how you handle it or how do you like to use it? 20:07 – Dan: When I started using this benchmarking is because I wanted to solve something. There were several regressions. We’d go back and address it. What I tried doing is put all the benchmarks into the gem. I think back by the Ruby 3x3 goals... 21:49 – Panel: What comes to mind is appreciating well-crafted software that really does well – maybe measure what customer output is? 22:43 – Dan: What people care about is their application. You can look to see... 23:33 – Panel: Automating takes that pressure right off of me and I can do 23:47 – Chuck: Recording all the things you want to do. We are talking about this right now you can record some of it in these tests or... 24:06 – Dan: I have fixed these performance things in the past. I have more confidence that these things get fixed before they get released. Having that methodology helps a lot. 24:43 – Advertisement – RubyMine 25:10 – Panel: I think it’s good to see WHERE your application is getting used the most. To see where you have the MOST code usage. 26:20 – Dan: That’s a good story on back on regressions on benchmarking or performances. 27:46 – Dan: One thing that I think is interesting – I believe the Rails performance testing has gone blank essentially. There are good articles but in the Rails 5 the guides no longer have any information. There is so much talk about performance and benchmarking but things have gotten lost, too. 28:28 – Panel: It’s interesting how we get into x, y, and z. We tend to figure it out and some guys focus on the next thing and the next. 29:24 – Dan: The fads of the things that go in-and-out. It’s definitely coming back: the performance in the Ruby world. My theory is that the tools have gotten that much better and people are doing less. They have offloaded a lot of things for people. It shows, though, it doesn’t do everything. 30:19 – Panel: I think that’s valuable, too. The WHOLE package – this is how we deliver, and these are the tools and the toolkits. I miss Ruby every time that I have to step away b/c I have to use something else. 31:17 – Dan: It sounds COOL to use Elixir and whatnot, but I just can’t get into it as much as when I use Ruby. When I try to branch out to use another language it isn’t the same. 31:47 – Panel: When the pressure is high I use Ruby so that’s where my heart is. 31:58 – Dan: It falls a little short, sometimes, it’s an easy thing that people say: it’s so slow. It’s one of those that we’d like to have a better answer. Is it something that people have thought of as a continual thing or...? 32:47 – Chuck: It’s generally to resolve an issue here or there. 32:57 – Panel. 33:07 – Chuck: When I do use the benchmarks I have added in my test suite a trip wire that validates that it’s under a certain point. 33:37 – Panel: If I did that my tests would never pass. 33:45 – Chuck. 33:49 – Dan: How can you do that reliably where you get the value but you don’t have a bunch of false failures? A person has to do it to see if it is faster/slower. 34:26 – Panel: For my applications – usually they are slow not b/c of Ruby but b/c of a poor architectural decision we have made. Every situation you can go and weight it to see what is best. Ultimately they are the ones that are brining in money into your business. 35:27 – Chuck: When I add things into my test suites is b/c there was some major performance hiccup where it ruins the user’s flow. 35:55 – Dan: The way you benchmark it... Benchmarking a gem or a library it’s how can it impact other people’s apps. And the Ruby 3x3 is proving that it’s faster – what does that mean – and I think Noah has done some great work on. 36:30 – Dan: The last thing I want to mention is Julia’s work on that is what got me back into coverband. I was thinking I would use a different version of coverband that would use RBSPY. 37:37 – Chuck: Yeah, that was a great episode. 37:44 – Dan: I want to play with it some more. I guess I would have to know more in Rust, though. 37:57 – Chuck: Anything that you are working on within this space? 38:04 – Dan: There have been 4-5 current people in coverband and we have added a bunch of new benchmarks and they are 60% faster. I am trying to work on getting a simpler version out there. Hopefully it will be live soon after getting rid of the bugs. 39:05 – Chuck: How can people find you? 39:10 – Dan: My blog, Twitter, and GitHub! 39:22 – Chuck: M-A-Y-E-R. 39:36 – Picks! 39:40 – Advertisement – Fresh Books! End – Cache Fly! Links: Get a Coder Job Course Ruby Rust Ruby Motion Ruby on Rails Angular Benchmark-IPS Rbspy Ruby Benchmarking Benchmarking Bugs Coverband TracePoint RR 362 Episode Rails Guides Atomic Habits EasyRes Skinny Pop Blog through AppSignal Book: Extreme Ownership Noah Gibbs’ Twitter Dan Mayer’s Blog Dan Mayer’s Twitter Dan Mayer’s GitHub Dan Mayer’s Medium Sponsors: Sentry RubyMine Cache Fly Fresh Books Picks: David Atomic Habits by James Clear Dave EasyRes Skinny Pop Charles Extreme Ownership Jocko Willink podcast 2 Keto Dudes Ketogenic Forums Dan Artemis https://blog.appsignal.com/2018/09/28/active-record-vs-ecto.html https://github.com/evanphx/benchmark-ips https://github.com/rbspy/rbspy
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please. 1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else? 2:05 – Guest. 3:20 – Chuck: How do you run Ruby on the web console? 3:40 – Guest answers Chuck’s question. 4:13 – Chuck: The other question is about security concerns – you don’t want to run in production? 4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server. 5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application. What I just mentioned what does a web console has a space for? 6:18 – Guest. 7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen? 7:46 – Guest answers. 8:24 – Chuck: When you deploy a production I don’t even know what this tag is? 8:33 – Guest. 9:10 – Chuck: Can I run it on Sinatra...or the other ones? 9:20 – Guest: If you make a bit of effort... 9:42 – Chuck: How does it pass things to the backend? 9:52 – Guest. 11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default. 11:36 – Guest. 11:58 – Panel: And if you want to embed it in a view in Rails? 12:05 – Guest. 12:06 – Chuck: That’s nice. 12:08 – Guest. 12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me. 13:33 – Guest. 13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well. 14:21 – Guest. 14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that? 15:00 – Guest. 16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform. 16:56 – Guest: It’s a tricky business. 18:39 – Panel: So is this under active development or...? 18:45 – Guest. 18:53 – Chuck: What was the hardest part to put this together? 19:00 – Guest: Getting it to work! 19:09 – Chuck: Nope...just getting it to work. 19:15 – Guest. 20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that. 21:13 – Guest. 21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute? 22:30 – Guest. 24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally? 24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong. 25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby. 26:08 – Guest. 26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch. 26:50 – Chuck: I’ve already switched. 27:01 – Panel: We like our tools. 27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain. 27:35 – Panel: Maybe my mind is so feeble-minded. 27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about. 28:12 – Guest. 28:21 – Panel: I think the key is the expressiveness – get it the ways I want 28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing. 28:54 – Guest. 29:04 – Panel: How many attendees did you have? 29:08 – Guest. 29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me. 30:17 – Panel: It makes it easy to break into groups if the conference is small. 30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other. 31:39 – Guest. 32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case. 32:40 – Chuck: Anything you’re working on now? 32:43 – Guest. 32:52 – Panel: Nice. 33:00 – Guest. 33:37 – Chuck: How can people find out about these different conferences? 33:50 – Guest: We have a Twitter account. 33:04 – Chuck: Let’s go to picks! 34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey Genadi Long Walk Freedom
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please. 1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else? 2:05 – Guest. 3:20 – Chuck: How do you run Ruby on the web console? 3:40 – Guest answers Chuck’s question. 4:13 – Chuck: The other question is about security concerns – you don’t want to run in production? 4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server. 5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application. What I just mentioned what does a web console has a space for? 6:18 – Guest. 7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen? 7:46 – Guest answers. 8:24 – Chuck: When you deploy a production I don’t even know what this tag is? 8:33 – Guest. 9:10 – Chuck: Can I run it on Sinatra...or the other ones? 9:20 – Guest: If you make a bit of effort... 9:42 – Chuck: How does it pass things to the backend? 9:52 – Guest. 11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default. 11:36 – Guest. 11:58 – Panel: And if you want to embed it in a view in Rails? 12:05 – Guest. 12:06 – Chuck: That’s nice. 12:08 – Guest. 12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me. 13:33 – Guest. 13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well. 14:21 – Guest. 14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that? 15:00 – Guest. 16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform. 16:56 – Guest: It’s a tricky business. 18:39 – Panel: So is this under active development or...? 18:45 – Guest. 18:53 – Chuck: What was the hardest part to put this together? 19:00 – Guest: Getting it to work! 19:09 – Chuck: Nope...just getting it to work. 19:15 – Guest. 20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that. 21:13 – Guest. 21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute? 22:30 – Guest. 24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally? 24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong. 25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby. 26:08 – Guest. 26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch. 26:50 – Chuck: I’ve already switched. 27:01 – Panel: We like our tools. 27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain. 27:35 – Panel: Maybe my mind is so feeble-minded. 27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about. 28:12 – Guest. 28:21 – Panel: I think the key is the expressiveness – get it the ways I want 28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing. 28:54 – Guest. 29:04 – Panel: How many attendees did you have? 29:08 – Guest. 29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me. 30:17 – Panel: It makes it easy to break into groups if the conference is small. 30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other. 31:39 – Guest. 32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case. 32:40 – Chuck: Anything you’re working on now? 32:43 – Guest. 32:52 – Panel: Nice. 33:00 – Guest. 33:37 – Chuck: How can people find out about these different conferences? 33:50 – Guest: We have a Twitter account. 33:04 – Chuck: Let’s go to picks! 34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey Genadi Long Walk Freedom
Panel: Dave Kimura Charles Max Wood David Richards Special Guest: Genadi Samokovarov In this episode of Ruby Rogues, the panel talks with Genadi Samokovarov who is a software developer and loves using Ruby. Genadi also likes dance music. You can check out his code at GitHub and his mixes on SoundCloud. Finally, he blogs about technology that he cares about. Check-out his post about a curious Proc.new case in Ruby. If you are interested in his work experience, check out his resume here. Send Genadi an email or follow his social links. Show Topics: 0:00 – Sentry.IO – Advertisement! 1:30 – Chuck: Introduce yourself please. 1:39 – The guest talks about his background and the company he works for. 2:03 – Chuck: Did you build the web console or something else? 2:05 – Guest. 3:20 – Chuck: How do you run Ruby on the web console? 3:40 – Guest answers Chuck’s question. 4:13 – Chuck: The other question is about security concerns – you don’t want to run in production? 4:25 – Guest: No, you don’t want to do that. 4:31 – Chuck: Use at home - don’t use it on your work server. 5:15 – Panel: It’s one of those features that people overlook on Rails. You have to proactively add in a pack to launch in a web console in that particular view. A lot of times people will either throw away rays (ERB) and they are able to get the same thing but you can interact with the page w/o full rendering of the application. What I just mentioned what does a web console has a space for? 6:18 – Guest. 7:23 – Panel: What would happen – if I put a debugging code in my application and it got committed and shipped – what would happen? 7:46 – Guest answers. 8:24 – Chuck: When you deploy a production I don’t even know what this tag is? 8:33 – Guest. 9:10 – Chuck: Can I run it on Sinatra...or the other ones? 9:20 – Guest: If you make a bit of effort... 9:42 – Chuck: How does it pass things to the backend? 9:52 – Guest. 11:22 – Chuck: Let’s say you set this up and you would include the gem in the Rails app – I guess it comes by default. 11:36 – Guest. 11:58 – Panel: And if you want to embed it in a view in Rails? 12:05 – Guest. 12:06 – Chuck: That’s nice. 12:08 – Guest. 12:43 – Panel: I would think that would be the most exciting things. I know the views and how it’s included there is a little bit of a black box for me. I don’t know quite what is going on and that’s after many years of use. Being able to open the web console and see what’s going on and see what I was thinking. Sometimes when I have hard times with my code it’s because I didn’t understand the Rails way and how they organize things. So for me to take a look it dawns on me. 13:33 – Guest. 13:41 – Panel: I learned Rails on a laptop. I went to terminal mode only and I learned it really, really well. 14:21 – Guest. 14:27 – Panel: Can web console do a separate JavaScript app and then you have a Ruby API backend – can you use console any plugin to integrate with that? 15:00 – Guest. 16:20 – Panel: That’s really cool, and good note. When people are developing a gem they keep one type of Ruby or whatever. They don’t take into account that Ruby or the MRI or whatever they are using it’s cool that you are proactive keeping into account the different interpreters and it works across the platform. 16:56 – Guest: It’s a tricky business. 18:39 – Panel: So is this under active development or...? 18:45 – Guest. 18:53 – Chuck: What was the hardest part to put this together? 19:00 – Guest: Getting it to work! 19:09 – Chuck: Nope...just getting it to work. 19:15 – Guest. 20:43 – Panel: That’s something where I have been in situations where it has given back the Rails spec trace. Not the actual application – I have no idea how to debug it. Then I dig in deeper and find it’s in my application part. It is important to have that. 21:13 – Guest. 21:51 – Get A Coder Job! 22:15 – Chuck: Anything else or should we talk about the conference for a minute? 22:30 – Guest. 24:09 – Panel: So you are getting these conferences going – is there a healthy/strong Ruby following in Bulgaria, generally? 24:25 – Guest: We do Meetups. It’s pretty active and a healthy community. It’s not as strong as the States, but it’s strong. 25:26 – Panel: Nice. I find that it’s interesting – I was around with Ruby in 2004, and people have been using Ruby for a while and Rails was new. It’s fun to build an organization around that and empower people to do great things. It’s great to do work that are learning Ruby. 26:08 – Guest. 26:25 – Panel: So that’s one of my coworkers and got him using VS code and show people the light to make the switch. 26:50 – Chuck: I’ve already switched. 27:01 – Panel: We like our tools. 27:17 – Guest: I guess my people like VS code b/c it’s easier to maintain. 27:35 – Panel: Maybe my mind is so feeble-minded. 27:45 – Chuck: I turned on the EMAX for along time and turned on my EMAX in my KS code. I get the nice extras. I don’t feel like there are 10 zillion things to worry about. 28:12 – Guest. 28:21 – Panel: I think the key is the expressiveness – get it the ways I want 28:38 – Chuck: I just want to think of the fact that I am using code – and that’s a good thing. 28:54 – Guest. 29:04 – Panel: How many attendees did you have? 29:08 – Guest. 29:22 – Chuck: The conferences that I like to attend that have an attendance of 150, I like b/c it’s intimate. The larger conferences I feel lost in the crowd. It’s just different for me. 30:17 – Panel: It makes it easy to break into groups if the conference is small. 30:30 – Panel: There are so many things that the experts can teach and show to the beginners. They could teach me something that I didn’t know. It’s powerful b/c you’re talking about projects and get to know each other. 31:39 – Guest. 32:16 – Panel: One thing I like is that the attendees make a Slack channel, and the speaker can address that during the talk. Sometimes they get answered, but just in case. 32:40 – Chuck: Anything you’re working on now? 32:43 – Guest. 32:52 – Panel: Nice. 33:00 – Guest. 33:37 – Chuck: How can people find out about these different conferences? 33:50 – Guest: We have a Twitter account. 33:04 – Chuck: Let’s go to picks! 34:12 – Advertisement – Fresh Books! 41:31 – Cache Fly! Links: Get a Coder Job Course Ruby Ruby Motion Ruby on Rails Angular Ruby Issue Tracking System Libraries.io Balkan Ruby Partial Conf Chaos Group Genadi Samokovarov’s Twitter Genadi Samokovarov’s GitHub Genadi Samokovarov’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David Creative Quest by Quest Love The Rhythm in Everything Dave Dewalt Clamps Action Text Charles The Diabetes Code Keto Diet Endorsed Local Providers via Dave Ramsey Genadi Long Walk Freedom
Panel: Dave Kimura Eric Berry Nathan Hopkins David Richards Special Guest: Jason Swett In this episode of Ruby Rogues, the panel talks with Jason Swett who is a host of the podcast show, Ruby Testing! Jason also teaches Rails testing at CodeWithJason.com. He currently resides in the Michigan area and works for Ben Franklin Labs. Check-out today’s episode where the panelists and the guest discuss testing topics. Show Topics: 0:00 – Sentry.IO – Advertisement! Check out the code: DEVCHAT @ Sentry.io. 1:07 – I am David Kimura and here is the panel! Tell us what is going on? 1:38 – Jason: I started my own podcast, and have been doing that for the past few months. That’s one thing. I started a new site with CodeWithJason.com. 2:04 – You released a course? 2:10 – Jason: Total flop and it doesn’t exist, but I am doing something else. 2:24 – I bet you learned a lot by creating the course? 2:34 – Jason: The endeavor of TEACHING it has helped me a lot. 2:50 – Tell us why we should drink the Koolaid? 3:02 – Jason: What IS testing? Good question. Whether is it is manual testing or automated testing. We might was well automate it. 3:25 – If we are testing our code what does that look like? 3:34 – Jason: Not sure what you mean, but I am doing tests at a fine grain vs. coarser grain. 4:00 – Show of hands who has...? 4:19 – What different tests are there? 4:20 – Jason: Good question. One term that one person uses is different to a different person. Let’s start with unit tests vs. integration tests. Jason dives into the similarities and differences between these 2 tests (see above). There are different tests, such as: featured tests, acceptance tests, etc. 5:45 – What tests are THE best? 5:50 – Jason: Good question. The kind of tests you are writing depends on what type of coverage you are going for. If I had a sign-up page for a user, I would... 7:36 – What anti-patterns are you seeing? What is your narrative in teaching people how to use them? 8:07 – Jason talks first about his background and his interaction with one of his colleagues. 8:58 – Question. 9:00 – Jason continues with his answers from 8:07. 9:32 – Jason: Feel free to chime-in. What have you done? 9:42 – I often ignore it until I feel bad and then I say: wait-a-minute I am a professional. Then I realize I ignored the problem because I was acting cowardly. 10:29 – For me it depends on the test that it is. One gem that I found is: RSpec RETRY. 11:16 – Jason: The test is flapping because of something is wrong with the database or something else. Since you asked about anti-patterns let’s talk about that! Rails and Angular are mentioned. 13:10 – Do you find that you back off of your unit testing when you are using integration? 13:22 – Jason: It depends on the context we are talking about. Jason talks about featured testing, model-level testing, and more. 13:58 – What is your view on using MOCKS or FAKES. What should we be doing there? 14:10 – Jason: Going to the Angular world I understand Mocks better than now. There was a parable that I think is applicable here about the young and the old fish. 16:23 – Jason continues talking about testing things in isolation. 16:36 – Question. 16:39 – I have been looking for an area to specialize in and I wrote an eBook. (Check out here to see the articles and books that Jason has authored.) Then I was looking around and I wanted to see what people’s issues are with Rails? They have a hard time with testing. I wanted to help them feel competent with it. 18:03 – In your course you have how to choose a framework. I know Ruby has several options on that front – how do you choose? 18:24 – Jason: There are 2 factors to consider. Jason tells us what those two factors are. Jason: Angular, React and Vue. 19:52 – Panelist: I had a conversation with a beginner and we were talking about the different tests. He said the DSL really appealed to him. The surface area of the AI made it approachable for him. 20:27 – Jason: I wished I had figured out DSL out a little better. Understanding the concept of a block. The IT is just a function and you can put parentheses in different areas and... 21:01 – That makes sense. Let’s revisit the Tweet you wrote. 21:35 – Jason: There are certain use cases where it makes sense. Where Gmail was the thing out there. At some point the Internet formed the opinion that... 22:39 – Old saying: Nobody gets fired for using Microsoft and then it was IBM. Nothing wrong with those things if that’s what you are trying to do. Sometimes we make decisions to not be criticized. We try to grab big frameworks and big codes so we are not criticized for. 23:48 – Jason: I think developers have this idea that OLD is OUTDATED. Not so. I think it’s mature, not necessarily outdated. I think it’s a pervasive idea. 24:31 – I think it suffers a bit when all the mind shares get lumped into one thing. The panelist continues... 24:53 – Jason: I don’t know if I like this analogy. 26:00 – I agree with that sentiment. It’s crazy that the complexity has become so pervasive. 26:18 – I think of SPAs as... 26:37 – Jason: Going back to the Tweet I wrote, I am pulling in JavaScript but I am preferring to sprinkle Java into Rails. 27:02 – Absolutely. I think that’s where we agree on. Late in 2017 we had the guest... “Use JavaScript sprinkles.” 27:49 – Panelist chimes-in. 28:37 – Jason: That make sense. Use your preexisting... I am afraid of committing to a single framework. I don’t have anything against JavaScript but I am afraid of using only one thing when something else becomes fashionable. 29:30 – Have you found that Java sparkle approach is easy to test? 29:38 – Jason: I think it’s easier. Client server architecture... 30:10 – Advertisement: Get A Coder Job! 30:41 – Shout-out to the Rails team! What other testing frameworks are there? What if you are not the developer but you are the Quality Assurance (QA) person. They have been given the task of testing on the application. 31:30 – Jason: So someone who is not a developer and they want to test the application. I don’t want to get out of my role of expertise. I did talk to a QA engineer and I asked them: What do you do? All of his tests are manual. He does the same stuff as a Rails developer would do. 32:52 – Panelist talks about pseudo code. 34:07 – Jason: I am curious, Dave, about the non-programmer helping with tests what is the team structure? 34:23 – Dave: You will have one QA per three developers. 34:44 – Jason: If you have a QA person he is integrated within the team – that’s what has been the case for me. 35:02 – Dave: It’s a nice thing to have because we need to crank out some features and we have a good idea what is wrong with the app. We can go in there and see if our application is good, but they are combining different scenarios to do the unit tests and see what they are lacking. They are uncovering different problems that we hadn’t thought of. 36:07 – The organization has to have the right culture for that to work. 36:35 – If it’s a small team then it will help to see what everyone is doing – it’s that engagement level. If the team is too large then it could be a problem. 37:15 – Jason: Engagement between whom? 37:27 – Both. Panelist goes into detail about different engagement levels throughout the team. 38:10 – Jason: Yeah that’s a tough thing. 38:49 – It’s interesting to see the things that are being created. Testing seems to help that out. We are getting bugs in that area or se didn’t design it well there... We see that we need some flexibility and getting that input and having a way to solve the problems. 39:32 – Jason: Continuous deployment – let’s segue into this topic. 41:17 – Panelist: Do you have recommendations on how often we should be deploying in that system per day/week? 41:40 – Jason: We would deploy several times a day, which was great. The more the better because the more frequently you are deploying the fewer things will go wrong. 42:21 – More frequently the better and more people involved. 42:45 – Jason continues this conversation. 42:51 – Panelist: Continuous integration – any time you were say to forgo tests or being less rigid? 43:14 – Jason: I don’t test everything. I don’t write tests for things that have little risks. 43:56 – I think it is a good segue into how you write your code. If you write a code that is like spaghetti then it will be a mess. Making things easier to test. 44:48 – Jason: This is fresh in my mind because I am writing an app called Green Field. 46:32 – Uniqueness Validations, is mentioned by Jason. 47:00 – Anything else to add to testing a Rails application? 47:08 – Jason: Let’s talk about 2 things: walking skeleton and small stories. This book is a great resource for automated testing. Last point that I want to talk about is small stories: continues deployment and continuous delivery. If you make your stories smaller then you are making your stories crisply defined. Have some bullet points to make it really easy to answer the question. Answer the question: is this story done or not done? Someone should be able to run through the bullet points and answer that question. 50:02 – I am in favor of small stories, too. Makes you feel more productive, too. 50:14 – Work tends to lend itself to these types of stories and running a sprint. 51:22 – You don’t have to carry that burden when you go home. You might have too big of a chunk – it carries too much weight to it. 51:47 – Book the Phoenix Project. Work in progress is a bad thing. That makes sense. You want to have fewer balls in the air. 52:17 – Anything else? 52:22 – Jason: You can find me at: CodewithJason.com also Twitter! 52:45 – Advertisement – Fresh Books! 1:01:50 – Cache Fly! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Angular Single Page Application (SPA) RSpec – Retry Ruby Testing Podcast The Feynman Technique Model Book: Growing Object-Oriented Software, Guided by Tests (1st edition) Jason Swett’s Twitter Jason Swett’s LinkedIn Parable: Young Fish and Old Fish – What is Water? Jason’s articles and eBook Jason’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David This is Water The Feynman Technique Model Nate Taking some time off Pry Test Eric Fake App Ruby Hack Conference Dave Brooks Shoes Jason The Food Lab Growing Object-Oriented Software
Panel: Dave Kimura Eric Berry Nathan Hopkins David Richards Special Guest: Jason Swett In this episode of Ruby Rogues, the panel talks with Jason Swett who is a host of the podcast show, Ruby Testing! Jason also teaches Rails testing at CodeWithJason.com. He currently resides in the Michigan area and works for Ben Franklin Labs. Check-out today’s episode where the panelists and the guest discuss testing topics. Show Topics: 0:00 – Sentry.IO – Advertisement! Check out the code: DEVCHAT @ Sentry.io. 1:07 – I am David Kimura and here is the panel! Tell us what is going on? 1:38 – Jason: I started my own podcast, and have been doing that for the past few months. That’s one thing. I started a new site with CodeWithJason.com. 2:04 – You released a course? 2:10 – Jason: Total flop and it doesn’t exist, but I am doing something else. 2:24 – I bet you learned a lot by creating the course? 2:34 – Jason: The endeavor of TEACHING it has helped me a lot. 2:50 – Tell us why we should drink the Koolaid? 3:02 – Jason: What IS testing? Good question. Whether is it is manual testing or automated testing. We might was well automate it. 3:25 – If we are testing our code what does that look like? 3:34 – Jason: Not sure what you mean, but I am doing tests at a fine grain vs. coarser grain. 4:00 – Show of hands who has...? 4:19 – What different tests are there? 4:20 – Jason: Good question. One term that one person uses is different to a different person. Let’s start with unit tests vs. integration tests. Jason dives into the similarities and differences between these 2 tests (see above). There are different tests, such as: featured tests, acceptance tests, etc. 5:45 – What tests are THE best? 5:50 – Jason: Good question. The kind of tests you are writing depends on what type of coverage you are going for. If I had a sign-up page for a user, I would... 7:36 – What anti-patterns are you seeing? What is your narrative in teaching people how to use them? 8:07 – Jason talks first about his background and his interaction with one of his colleagues. 8:58 – Question. 9:00 – Jason continues with his answers from 8:07. 9:32 – Jason: Feel free to chime-in. What have you done? 9:42 – I often ignore it until I feel bad and then I say: wait-a-minute I am a professional. Then I realize I ignored the problem because I was acting cowardly. 10:29 – For me it depends on the test that it is. One gem that I found is: RSpec RETRY. 11:16 – Jason: The test is flapping because of something is wrong with the database or something else. Since you asked about anti-patterns let’s talk about that! Rails and Angular are mentioned. 13:10 – Do you find that you back off of your unit testing when you are using integration? 13:22 – Jason: It depends on the context we are talking about. Jason talks about featured testing, model-level testing, and more. 13:58 – What is your view on using MOCKS or FAKES. What should we be doing there? 14:10 – Jason: Going to the Angular world I understand Mocks better than now. There was a parable that I think is applicable here about the young and the old fish. 16:23 – Jason continues talking about testing things in isolation. 16:36 – Question. 16:39 – I have been looking for an area to specialize in and I wrote an eBook. (Check out here to see the articles and books that Jason has authored.) Then I was looking around and I wanted to see what people’s issues are with Rails? They have a hard time with testing. I wanted to help them feel competent with it. 18:03 – In your course you have how to choose a framework. I know Ruby has several options on that front – how do you choose? 18:24 – Jason: There are 2 factors to consider. Jason tells us what those two factors are. Jason: Angular, React and Vue. 19:52 – Panelist: I had a conversation with a beginner and we were talking about the different tests. He said the DSL really appealed to him. The surface area of the AI made it approachable for him. 20:27 – Jason: I wished I had figured out DSL out a little better. Understanding the concept of a block. The IT is just a function and you can put parentheses in different areas and... 21:01 – That makes sense. Let’s revisit the Tweet you wrote. 21:35 – Jason: There are certain use cases where it makes sense. Where Gmail was the thing out there. At some point the Internet formed the opinion that... 22:39 – Old saying: Nobody gets fired for using Microsoft and then it was IBM. Nothing wrong with those things if that’s what you are trying to do. Sometimes we make decisions to not be criticized. We try to grab big frameworks and big codes so we are not criticized for. 23:48 – Jason: I think developers have this idea that OLD is OUTDATED. Not so. I think it’s mature, not necessarily outdated. I think it’s a pervasive idea. 24:31 – I think it suffers a bit when all the mind shares get lumped into one thing. The panelist continues... 24:53 – Jason: I don’t know if I like this analogy. 26:00 – I agree with that sentiment. It’s crazy that the complexity has become so pervasive. 26:18 – I think of SPAs as... 26:37 – Jason: Going back to the Tweet I wrote, I am pulling in JavaScript but I am preferring to sprinkle Java into Rails. 27:02 – Absolutely. I think that’s where we agree on. Late in 2017 we had the guest... “Use JavaScript sprinkles.” 27:49 – Panelist chimes-in. 28:37 – Jason: That make sense. Use your preexisting... I am afraid of committing to a single framework. I don’t have anything against JavaScript but I am afraid of using only one thing when something else becomes fashionable. 29:30 – Have you found that Java sparkle approach is easy to test? 29:38 – Jason: I think it’s easier. Client server architecture... 30:10 – Advertisement: Get A Coder Job! 30:41 – Shout-out to the Rails team! What other testing frameworks are there? What if you are not the developer but you are the Quality Assurance (QA) person. They have been given the task of testing on the application. 31:30 – Jason: So someone who is not a developer and they want to test the application. I don’t want to get out of my role of expertise. I did talk to a QA engineer and I asked them: What do you do? All of his tests are manual. He does the same stuff as a Rails developer would do. 32:52 – Panelist talks about pseudo code. 34:07 – Jason: I am curious, Dave, about the non-programmer helping with tests what is the team structure? 34:23 – Dave: You will have one QA per three developers. 34:44 – Jason: If you have a QA person he is integrated within the team – that’s what has been the case for me. 35:02 – Dave: It’s a nice thing to have because we need to crank out some features and we have a good idea what is wrong with the app. We can go in there and see if our application is good, but they are combining different scenarios to do the unit tests and see what they are lacking. They are uncovering different problems that we hadn’t thought of. 36:07 – The organization has to have the right culture for that to work. 36:35 – If it’s a small team then it will help to see what everyone is doing – it’s that engagement level. If the team is too large then it could be a problem. 37:15 – Jason: Engagement between whom? 37:27 – Both. Panelist goes into detail about different engagement levels throughout the team. 38:10 – Jason: Yeah that’s a tough thing. 38:49 – It’s interesting to see the things that are being created. Testing seems to help that out. We are getting bugs in that area or se didn’t design it well there... We see that we need some flexibility and getting that input and having a way to solve the problems. 39:32 – Jason: Continuous deployment – let’s segue into this topic. 41:17 – Panelist: Do you have recommendations on how often we should be deploying in that system per day/week? 41:40 – Jason: We would deploy several times a day, which was great. The more the better because the more frequently you are deploying the fewer things will go wrong. 42:21 – More frequently the better and more people involved. 42:45 – Jason continues this conversation. 42:51 – Panelist: Continuous integration – any time you were say to forgo tests or being less rigid? 43:14 – Jason: I don’t test everything. I don’t write tests for things that have little risks. 43:56 – I think it is a good segue into how you write your code. If you write a code that is like spaghetti then it will be a mess. Making things easier to test. 44:48 – Jason: This is fresh in my mind because I am writing an app called Green Field. 46:32 – Uniqueness Validations, is mentioned by Jason. 47:00 – Anything else to add to testing a Rails application? 47:08 – Jason: Let’s talk about 2 things: walking skeleton and small stories. This book is a great resource for automated testing. Last point that I want to talk about is small stories: continues deployment and continuous delivery. If you make your stories smaller then you are making your stories crisply defined. Have some bullet points to make it really easy to answer the question. Answer the question: is this story done or not done? Someone should be able to run through the bullet points and answer that question. 50:02 – I am in favor of small stories, too. Makes you feel more productive, too. 50:14 – Work tends to lend itself to these types of stories and running a sprint. 51:22 – You don’t have to carry that burden when you go home. You might have too big of a chunk – it carries too much weight to it. 51:47 – Book the Phoenix Project. Work in progress is a bad thing. That makes sense. You want to have fewer balls in the air. 52:17 – Anything else? 52:22 – Jason: You can find me at: CodewithJason.com also Twitter! 52:45 – Advertisement – Fresh Books! 1:01:50 – Cache Fly! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Angular Single Page Application (SPA) RSpec – Retry Ruby Testing Podcast The Feynman Technique Model Book: Growing Object-Oriented Software, Guided by Tests (1st edition) Jason Swett’s Twitter Jason Swett’s LinkedIn Parable: Young Fish and Old Fish – What is Water? Jason’s articles and eBook Jason’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David This is Water The Feynman Technique Model Nate Taking some time off Pry Test Eric Fake App Ruby Hack Conference Dave Brooks Shoes Jason The Food Lab Growing Object-Oriented Software
Panel: Dave Kimura Eric Berry Nathan Hopkins David Richards Special Guest: Jason Swett In this episode of Ruby Rogues, the panel talks with Jason Swett who is a host of the podcast show, Ruby Testing! Jason also teaches Rails testing at CodeWithJason.com. He currently resides in the Michigan area and works for Ben Franklin Labs. Check-out today’s episode where the panelists and the guest discuss testing topics. Show Topics: 0:00 – Sentry.IO – Advertisement! Check out the code: DEVCHAT @ Sentry.io. 1:07 – I am David Kimura and here is the panel! Tell us what is going on? 1:38 – Jason: I started my own podcast, and have been doing that for the past few months. That’s one thing. I started a new site with CodeWithJason.com. 2:04 – You released a course? 2:10 – Jason: Total flop and it doesn’t exist, but I am doing something else. 2:24 – I bet you learned a lot by creating the course? 2:34 – Jason: The endeavor of TEACHING it has helped me a lot. 2:50 – Tell us why we should drink the Koolaid? 3:02 – Jason: What IS testing? Good question. Whether is it is manual testing or automated testing. We might was well automate it. 3:25 – If we are testing our code what does that look like? 3:34 – Jason: Not sure what you mean, but I am doing tests at a fine grain vs. coarser grain. 4:00 – Show of hands who has...? 4:19 – What different tests are there? 4:20 – Jason: Good question. One term that one person uses is different to a different person. Let’s start with unit tests vs. integration tests. Jason dives into the similarities and differences between these 2 tests (see above). There are different tests, such as: featured tests, acceptance tests, etc. 5:45 – What tests are THE best? 5:50 – Jason: Good question. The kind of tests you are writing depends on what type of coverage you are going for. If I had a sign-up page for a user, I would... 7:36 – What anti-patterns are you seeing? What is your narrative in teaching people how to use them? 8:07 – Jason talks first about his background and his interaction with one of his colleagues. 8:58 – Question. 9:00 – Jason continues with his answers from 8:07. 9:32 – Jason: Feel free to chime-in. What have you done? 9:42 – I often ignore it until I feel bad and then I say: wait-a-minute I am a professional. Then I realize I ignored the problem because I was acting cowardly. 10:29 – For me it depends on the test that it is. One gem that I found is: RSpec RETRY. 11:16 – Jason: The test is flapping because of something is wrong with the database or something else. Since you asked about anti-patterns let’s talk about that! Rails and Angular are mentioned. 13:10 – Do you find that you back off of your unit testing when you are using integration? 13:22 – Jason: It depends on the context we are talking about. Jason talks about featured testing, model-level testing, and more. 13:58 – What is your view on using MOCKS or FAKES. What should we be doing there? 14:10 – Jason: Going to the Angular world I understand Mocks better than now. There was a parable that I think is applicable here about the young and the old fish. 16:23 – Jason continues talking about testing things in isolation. 16:36 – Question. 16:39 – I have been looking for an area to specialize in and I wrote an eBook. (Check out here to see the articles and books that Jason has authored.) Then I was looking around and I wanted to see what people’s issues are with Rails? They have a hard time with testing. I wanted to help them feel competent with it. 18:03 – In your course you have how to choose a framework. I know Ruby has several options on that front – how do you choose? 18:24 – Jason: There are 2 factors to consider. Jason tells us what those two factors are. Jason: Angular, React and Vue. 19:52 – Panelist: I had a conversation with a beginner and we were talking about the different tests. He said the DSL really appealed to him. The surface area of the AI made it approachable for him. 20:27 – Jason: I wished I had figured out DSL out a little better. Understanding the concept of a block. The IT is just a function and you can put parentheses in different areas and... 21:01 – That makes sense. Let’s revisit the Tweet you wrote. 21:35 – Jason: There are certain use cases where it makes sense. Where Gmail was the thing out there. At some point the Internet formed the opinion that... 22:39 – Old saying: Nobody gets fired for using Microsoft and then it was IBM. Nothing wrong with those things if that’s what you are trying to do. Sometimes we make decisions to not be criticized. We try to grab big frameworks and big codes so we are not criticized for. 23:48 – Jason: I think developers have this idea that OLD is OUTDATED. Not so. I think it’s mature, not necessarily outdated. I think it’s a pervasive idea. 24:31 – I think it suffers a bit when all the mind shares get lumped into one thing. The panelist continues... 24:53 – Jason: I don’t know if I like this analogy. 26:00 – I agree with that sentiment. It’s crazy that the complexity has become so pervasive. 26:18 – I think of SPAs as... 26:37 – Jason: Going back to the Tweet I wrote, I am pulling in JavaScript but I am preferring to sprinkle Java into Rails. 27:02 – Absolutely. I think that’s where we agree on. Late in 2017 we had the guest... “Use JavaScript sprinkles.” 27:49 – Panelist chimes-in. 28:37 – Jason: That make sense. Use your preexisting... I am afraid of committing to a single framework. I don’t have anything against JavaScript but I am afraid of using only one thing when something else becomes fashionable. 29:30 – Have you found that Java sparkle approach is easy to test? 29:38 – Jason: I think it’s easier. Client server architecture... 30:10 – Advertisement: Get A Coder Job! 30:41 – Shout-out to the Rails team! What other testing frameworks are there? What if you are not the developer but you are the Quality Assurance (QA) person. They have been given the task of testing on the application. 31:30 – Jason: So someone who is not a developer and they want to test the application. I don’t want to get out of my role of expertise. I did talk to a QA engineer and I asked them: What do you do? All of his tests are manual. He does the same stuff as a Rails developer would do. 32:52 – Panelist talks about pseudo code. 34:07 – Jason: I am curious, Dave, about the non-programmer helping with tests what is the team structure? 34:23 – Dave: You will have one QA per three developers. 34:44 – Jason: If you have a QA person he is integrated within the team – that’s what has been the case for me. 35:02 – Dave: It’s a nice thing to have because we need to crank out some features and we have a good idea what is wrong with the app. We can go in there and see if our application is good, but they are combining different scenarios to do the unit tests and see what they are lacking. They are uncovering different problems that we hadn’t thought of. 36:07 – The organization has to have the right culture for that to work. 36:35 – If it’s a small team then it will help to see what everyone is doing – it’s that engagement level. If the team is too large then it could be a problem. 37:15 – Jason: Engagement between whom? 37:27 – Both. Panelist goes into detail about different engagement levels throughout the team. 38:10 – Jason: Yeah that’s a tough thing. 38:49 – It’s interesting to see the things that are being created. Testing seems to help that out. We are getting bugs in that area or se didn’t design it well there... We see that we need some flexibility and getting that input and having a way to solve the problems. 39:32 – Jason: Continuous deployment – let’s segue into this topic. 41:17 – Panelist: Do you have recommendations on how often we should be deploying in that system per day/week? 41:40 – Jason: We would deploy several times a day, which was great. The more the better because the more frequently you are deploying the fewer things will go wrong. 42:21 – More frequently the better and more people involved. 42:45 – Jason continues this conversation. 42:51 – Panelist: Continuous integration – any time you were say to forgo tests or being less rigid? 43:14 – Jason: I don’t test everything. I don’t write tests for things that have little risks. 43:56 – I think it is a good segue into how you write your code. If you write a code that is like spaghetti then it will be a mess. Making things easier to test. 44:48 – Jason: This is fresh in my mind because I am writing an app called Green Field. 46:32 – Uniqueness Validations, is mentioned by Jason. 47:00 – Anything else to add to testing a Rails application? 47:08 – Jason: Let’s talk about 2 things: walking skeleton and small stories. This book is a great resource for automated testing. Last point that I want to talk about is small stories: continues deployment and continuous delivery. If you make your stories smaller then you are making your stories crisply defined. Have some bullet points to make it really easy to answer the question. Answer the question: is this story done or not done? Someone should be able to run through the bullet points and answer that question. 50:02 – I am in favor of small stories, too. Makes you feel more productive, too. 50:14 – Work tends to lend itself to these types of stories and running a sprint. 51:22 – You don’t have to carry that burden when you go home. You might have too big of a chunk – it carries too much weight to it. 51:47 – Book the Phoenix Project. Work in progress is a bad thing. That makes sense. You want to have fewer balls in the air. 52:17 – Anything else? 52:22 – Jason: You can find me at: CodewithJason.com also Twitter! 52:45 – Advertisement – Fresh Books! 1:01:50 – Cache Fly! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Angular Single Page Application (SPA) RSpec – Retry Ruby Testing Podcast The Feynman Technique Model Book: Growing Object-Oriented Software, Guided by Tests (1st edition) Jason Swett’s Twitter Jason Swett’s LinkedIn Parable: Young Fish and Old Fish – What is Water? Jason’s articles and eBook Jason’s Website Sponsors: Sentry Get a Coder Job Course Fresh Books Cache Fly Picks: David This is Water The Feynman Technique Model Nate Taking some time off Pry Test Eric Fake App Ruby Hack Conference Dave Brooks Shoes Jason The Food Lab Growing Object-Oriented Software
Panel: Dave Kimura Eric Berry Special Guest: Sam Aaron In this episode of Ruby Rogues, the panel talks with Sam Aaron who is the creator of Sonic Pi, which is the main topic that he and the panel talk about today. Sam is a computer scientist who has his Ph.D., and uses the Ruby language. He is also a programmer, educator, live coding musician, and father. Show Topics: 1:25 – Panelist: Tell us what you are doing? 1:27 – Sam: Good question. I do a lot of different things and I try to challenge programming and take it a new How can I be the most expressive person with code? I have written things to write music with code. 2:00 – Code is just a medium like dancing and writing. You can write to write code but as to write poetry. 2:33 – Tell us about Sonic Pi – the project you have developed to generate music from code. 2:42 – Sam: It’s a very simple program. It’s an app that you can run on Mac or Windows and others. It was written as a response to the UK opening a new system. How can we get children engaged? And this was my answer to that question. 3:37 – Was this developed by a team? 3:41 – Sam: Most of it was developed by myself – no real team – but a lot of it was through open source. 4:01 – What was the motivation? Why music; why not a drawing library like something visual? 4:19 – Sam: Many years ago I had a tragedy in the family. I was struggling mentally with it. One thing that helped me was I picked up a book on a specific language. When I see these visual systems...it can be very daunting and difficult. To me when I use programming tools I thought naturally music. 6:14 – Can you talk about the architecture of Sonic Pi? 6:50 – Guest: Sonic Pi came purely from response and had a small amount of money to spend – teaching kids how to code. I wanted to get this overtone. I used to be a Ruby programmer. The original core was taken from these overtones. And the way it works is that you have a simple server, Ruby server, and... Three separate processes all talking over the network. 9:08 – I want to give the listeners an idea of what this sounds like – it’s pretty amazing. Here is a sound that is 4 lines of code in Ruby. Can you tell us what is going in to make that sound work? 9:37 – Sam: The bottom layer is...the different waveforms for that sound clip. There is a mathematician who figured out... Sam talks about how sound works and how Sonic Pi works. 12:24 – Sam: The way to record a sound and the way to... 12:35 – Acid Walk – let’s take a listen. 12:50 – That is purely very intricate – that was about 60-80 lines. 13:00 –Sam: The bass line was...and the ticking sound was how long to wait again. It sounds complicated but take notes from a scale (different color palettes of notes) – notes you pick from. It will create the melody randomly for you. Adding some distortions and reverbs, etc. 14:03 – I am not musically inclined. So when I think of Raspberry Pi – why did you choose Ruby and not Python for developing the Sonic Pi engine? 14:27 – Sam: Your statement – “You are not musically inclined,” bothers me. We can all wave our arms around and dance. Having that mind thought is a barrier to your well-being. There was an interview with a lady over 100 years old. Any regrets? When I was 80 – I could have been playing for 20 years! 15:43 – Sam: My contract was about to expire and then was the same year that Raspberry Pi released and had staggering success. They didn’t necessarily have... Every week I went into the classroom with a different version. Actually there are different pros and cons in an educational context. 19:00 – Looking at the Sonic Pi in Ruby but also some Erlang in there? 19:15 – Sam: I talked earlier about the three components. Sam talks in-detail about Ruby and why he also used some Erlang. 22:30 – Sam: Erlang has a beautiful design and there is no garbage collector. It was the right architecture. I thought – how am I going to sit down and learn Erlang? Well you just make friends. Another program we used that takes these messages and... 23:40 – Have you had any requests to make this an ONLINE application? 23:50 – Sam: I have been thinking about this for some time. The web audio isn’t super solid. You would have to have a really decent invitation in web audio that is rock solid. The music applications still don’t use the web because it isn’t there quite, yet. 25:35 – Advertisement – Get A Coder Job 26:16 – Can you talk about the inspiration to the DSL that you are using on Sonic Pi? Why create your own DSL? 26:31 – Sam: Sure! Your syntax is a data structure, which... 28:28 – You have been using this since 2013? 28:41 – Sam: Yes I do the majority of the work. It is an open source project and a core team of developers who are the core contributors. People own their work that they have done. It’s a powerful team. There are visual contributions among many different ways. I have done the crappy jobs. 29:51 – You have put so much time into this? Are you getting paid for this? 30:05 – Sam: I am extremely fortunate to be getting paid for this. It’s being funded by various sources. These people allowed me the freedom to create Sonic Pi the way that I wanted to build it. The Pi Top they provided some funding, among other donors and such. I have a patron page that is growing. I am doing more keynotes and conferences. This was designed to help students learn how to code. I do look for contributors. The language is there but we need the tools. 32:46 – I run a company called CodeFund to bring money to open source. There are different ways that people can generate funds for projects. There are organizations that are helping us to make our projects sustainable. 33:22 – Sam comments. Sam: I am trying to find ways to be sustainable, so I can be comfortable. 33:53 – Where can people go to donate? 34:02 – Go to SonicPi.net. Don’t donate if you don’t like it. If it makes you smile then please donate. You can join and donate. 34:43 – Sam: When you have funding it can be removed in one sweep. 35:19 – You have an active community? 35:20 – Yes! Programming music communities are great. Yes, we have musicians in there and coders in there. 36:33 – People can post their music – they aren’t posting music they are posting code. 36:47 – Sam: Yes! If you can represent your music in some weird syntax, that can be stored somewhere like dots and lines (like Western music notation) then that’s great. It’s not just what the trumpet and the violin should play but what studio effects we should add. Even if you are using multiple threads those tings are always resolved. I can take my new code and hear the exact same things that I’ve heard. When you go to see performances and see live coding performance. 39:50 – Panelist comments. What does the future look like for Sonic Pi? 40:02 – Sam: It’s a business problem more than a technical problem. I am working on accessibility. I am making sure that this and that works well, and navigation to work with. Also, collaboration, too; the ability to share and contribute their compositions in one place. Can we get children from Africa to write pieces with children from Finland? 41:57 – Anything else that we should know about Sonic Pi? 42:08 – Sam: It really depends. What’s important to realize that this whole coding /music thing is a really new thing. When you see a guitar it’s had thousands of years to evolve. What we have right now is really exciting. We should see this as new musical instruments. Its’ really tough to hear people say, “code cannot make music.” Also, not to have any pre-conceived ideas, and to share their work with others. We aren’t professional musicians and just to explore, experiment, and play. People might be too reluctant to share because they are comparing it to music that they adore. 44:56 – Panelist: This whole song is 206 lines of code of the Mario Theme Song. 46:12 – Intro and outro for podcasts. 46:37 – How can we find these? 46:42 – Sam: I tweet these. A few years ago I got into Rolling Stone magazine. Download an opera and download a rock song. 48:49 – Advertisement – Fresh Books! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Sonic Pi Sonic Pi – GitHub In Thread Sonic Pi Xavriley – ReadME.md Undercover SimpleCov ClarionHub Atomic Object – Sam Aaron Sam Aaron’s Twitter Sam Aaron’s Instagram Sponsors: Sentry Get a Coder Job Course Fresh Books Picks: Eric Sonic Pi Clarion Hub Artiphon Dave Simple Cov Under Cover Sam Emacs Program Editor
Panel: Dave Kimura Eric Berry Special Guest: Sam Aaron In this episode of Ruby Rogues, the panel talks with Sam Aaron who is the creator of Sonic Pi, which is the main topic that he and the panel talk about today. Sam is a computer scientist who has his Ph.D., and uses the Ruby language. He is also a programmer, educator, live coding musician, and father. Show Topics: 1:25 – Panelist: Tell us what you are doing? 1:27 – Sam: Good question. I do a lot of different things and I try to challenge programming and take it a new How can I be the most expressive person with code? I have written things to write music with code. 2:00 – Code is just a medium like dancing and writing. You can write to write code but as to write poetry. 2:33 – Tell us about Sonic Pi – the project you have developed to generate music from code. 2:42 – Sam: It’s a very simple program. It’s an app that you can run on Mac or Windows and others. It was written as a response to the UK opening a new system. How can we get children engaged? And this was my answer to that question. 3:37 – Was this developed by a team? 3:41 – Sam: Most of it was developed by myself – no real team – but a lot of it was through open source. 4:01 – What was the motivation? Why music; why not a drawing library like something visual? 4:19 – Sam: Many years ago I had a tragedy in the family. I was struggling mentally with it. One thing that helped me was I picked up a book on a specific language. When I see these visual systems...it can be very daunting and difficult. To me when I use programming tools I thought naturally music. 6:14 – Can you talk about the architecture of Sonic Pi? 6:50 – Guest: Sonic Pi came purely from response and had a small amount of money to spend – teaching kids how to code. I wanted to get this overtone. I used to be a Ruby programmer. The original core was taken from these overtones. And the way it works is that you have a simple server, Ruby server, and... Three separate processes all talking over the network. 9:08 – I want to give the listeners an idea of what this sounds like – it’s pretty amazing. Here is a sound that is 4 lines of code in Ruby. Can you tell us what is going in to make that sound work? 9:37 – Sam: The bottom layer is...the different waveforms for that sound clip. There is a mathematician who figured out... Sam talks about how sound works and how Sonic Pi works. 12:24 – Sam: The way to record a sound and the way to... 12:35 – Acid Walk – let’s take a listen. 12:50 – That is purely very intricate – that was about 60-80 lines. 13:00 –Sam: The bass line was...and the ticking sound was how long to wait again. It sounds complicated but take notes from a scale (different color palettes of notes) – notes you pick from. It will create the melody randomly for you. Adding some distortions and reverbs, etc. 14:03 – I am not musically inclined. So when I think of Raspberry Pi – why did you choose Ruby and not Python for developing the Sonic Pi engine? 14:27 – Sam: Your statement – “You are not musically inclined,” bothers me. We can all wave our arms around and dance. Having that mind thought is a barrier to your well-being. There was an interview with a lady over 100 years old. Any regrets? When I was 80 – I could have been playing for 20 years! 15:43 – Sam: My contract was about to expire and then was the same year that Raspberry Pi released and had staggering success. They didn’t necessarily have... Every week I went into the classroom with a different version. Actually there are different pros and cons in an educational context. 19:00 – Looking at the Sonic Pi in Ruby but also some Erlang in there? 19:15 – Sam: I talked earlier about the three components. Sam talks in-detail about Ruby and why he also used some Erlang. 22:30 – Sam: Erlang has a beautiful design and there is no garbage collector. It was the right architecture. I thought – how am I going to sit down and learn Erlang? Well you just make friends. Another program we used that takes these messages and... 23:40 – Have you had any requests to make this an ONLINE application? 23:50 – Sam: I have been thinking about this for some time. The web audio isn’t super solid. You would have to have a really decent invitation in web audio that is rock solid. The music applications still don’t use the web because it isn’t there quite, yet. 25:35 – Advertisement – Get A Coder Job 26:16 – Can you talk about the inspiration to the DSL that you are using on Sonic Pi? Why create your own DSL? 26:31 – Sam: Sure! Your syntax is a data structure, which... 28:28 – You have been using this since 2013? 28:41 – Sam: Yes I do the majority of the work. It is an open source project and a core team of developers who are the core contributors. People own their work that they have done. It’s a powerful team. There are visual contributions among many different ways. I have done the crappy jobs. 29:51 – You have put so much time into this? Are you getting paid for this? 30:05 – Sam: I am extremely fortunate to be getting paid for this. It’s being funded by various sources. These people allowed me the freedom to create Sonic Pi the way that I wanted to build it. The Pi Top they provided some funding, among other donors and such. I have a patron page that is growing. I am doing more keynotes and conferences. This was designed to help students learn how to code. I do look for contributors. The language is there but we need the tools. 32:46 – I run a company called CodeFund to bring money to open source. There are different ways that people can generate funds for projects. There are organizations that are helping us to make our projects sustainable. 33:22 – Sam comments. Sam: I am trying to find ways to be sustainable, so I can be comfortable. 33:53 – Where can people go to donate? 34:02 – Go to SonicPi.net. Don’t donate if you don’t like it. If it makes you smile then please donate. You can join and donate. 34:43 – Sam: When you have funding it can be removed in one sweep. 35:19 – You have an active community? 35:20 – Yes! Programming music communities are great. Yes, we have musicians in there and coders in there. 36:33 – People can post their music – they aren’t posting music they are posting code. 36:47 – Sam: Yes! If you can represent your music in some weird syntax, that can be stored somewhere like dots and lines (like Western music notation) then that’s great. It’s not just what the trumpet and the violin should play but what studio effects we should add. Even if you are using multiple threads those tings are always resolved. I can take my new code and hear the exact same things that I’ve heard. When you go to see performances and see live coding performance. 39:50 – Panelist comments. What does the future look like for Sonic Pi? 40:02 – Sam: It’s a business problem more than a technical problem. I am working on accessibility. I am making sure that this and that works well, and navigation to work with. Also, collaboration, too; the ability to share and contribute their compositions in one place. Can we get children from Africa to write pieces with children from Finland? 41:57 – Anything else that we should know about Sonic Pi? 42:08 – Sam: It really depends. What’s important to realize that this whole coding /music thing is a really new thing. When you see a guitar it’s had thousands of years to evolve. What we have right now is really exciting. We should see this as new musical instruments. Its’ really tough to hear people say, “code cannot make music.” Also, not to have any pre-conceived ideas, and to share their work with others. We aren’t professional musicians and just to explore, experiment, and play. People might be too reluctant to share because they are comparing it to music that they adore. 44:56 – Panelist: This whole song is 206 lines of code of the Mario Theme Song. 46:12 – Intro and outro for podcasts. 46:37 – How can we find these? 46:42 – Sam: I tweet these. A few years ago I got into Rolling Stone magazine. Download an opera and download a rock song. 48:49 – Advertisement – Fresh Books! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Sonic Pi Sonic Pi – GitHub In Thread Sonic Pi Xavriley – ReadME.md Undercover SimpleCov ClarionHub Atomic Object – Sam Aaron Sam Aaron’s Twitter Sam Aaron’s Instagram Sponsors: Sentry Get a Coder Job Course Fresh Books Picks: Eric Sonic Pi Clarion Hub Artiphon Dave Simple Cov Under Cover Sam Emacs Program Editor
Panel: Dave Kimura Eric Berry Special Guest: Sam Aaron In this episode of Ruby Rogues, the panel talks with Sam Aaron who is the creator of Sonic Pi, which is the main topic that he and the panel talk about today. Sam is a computer scientist who has his Ph.D., and uses the Ruby language. He is also a programmer, educator, live coding musician, and father. Show Topics: 1:25 – Panelist: Tell us what you are doing? 1:27 – Sam: Good question. I do a lot of different things and I try to challenge programming and take it a new How can I be the most expressive person with code? I have written things to write music with code. 2:00 – Code is just a medium like dancing and writing. You can write to write code but as to write poetry. 2:33 – Tell us about Sonic Pi – the project you have developed to generate music from code. 2:42 – Sam: It’s a very simple program. It’s an app that you can run on Mac or Windows and others. It was written as a response to the UK opening a new system. How can we get children engaged? And this was my answer to that question. 3:37 – Was this developed by a team? 3:41 – Sam: Most of it was developed by myself – no real team – but a lot of it was through open source. 4:01 – What was the motivation? Why music; why not a drawing library like something visual? 4:19 – Sam: Many years ago I had a tragedy in the family. I was struggling mentally with it. One thing that helped me was I picked up a book on a specific language. When I see these visual systems...it can be very daunting and difficult. To me when I use programming tools I thought naturally music. 6:14 – Can you talk about the architecture of Sonic Pi? 6:50 – Guest: Sonic Pi came purely from response and had a small amount of money to spend – teaching kids how to code. I wanted to get this overtone. I used to be a Ruby programmer. The original core was taken from these overtones. And the way it works is that you have a simple server, Ruby server, and... Three separate processes all talking over the network. 9:08 – I want to give the listeners an idea of what this sounds like – it’s pretty amazing. Here is a sound that is 4 lines of code in Ruby. Can you tell us what is going in to make that sound work? 9:37 – Sam: The bottom layer is...the different waveforms for that sound clip. There is a mathematician who figured out... Sam talks about how sound works and how Sonic Pi works. 12:24 – Sam: The way to record a sound and the way to... 12:35 – Acid Walk – let’s take a listen. 12:50 – That is purely very intricate – that was about 60-80 lines. 13:00 –Sam: The bass line was...and the ticking sound was how long to wait again. It sounds complicated but take notes from a scale (different color palettes of notes) – notes you pick from. It will create the melody randomly for you. Adding some distortions and reverbs, etc. 14:03 – I am not musically inclined. So when I think of Raspberry Pi – why did you choose Ruby and not Python for developing the Sonic Pi engine? 14:27 – Sam: Your statement – “You are not musically inclined,” bothers me. We can all wave our arms around and dance. Having that mind thought is a barrier to your well-being. There was an interview with a lady over 100 years old. Any regrets? When I was 80 – I could have been playing for 20 years! 15:43 – Sam: My contract was about to expire and then was the same year that Raspberry Pi released and had staggering success. They didn’t necessarily have... Every week I went into the classroom with a different version. Actually there are different pros and cons in an educational context. 19:00 – Looking at the Sonic Pi in Ruby but also some Erlang in there? 19:15 – Sam: I talked earlier about the three components. Sam talks in-detail about Ruby and why he also used some Erlang. 22:30 – Sam: Erlang has a beautiful design and there is no garbage collector. It was the right architecture. I thought – how am I going to sit down and learn Erlang? Well you just make friends. Another program we used that takes these messages and... 23:40 – Have you had any requests to make this an ONLINE application? 23:50 – Sam: I have been thinking about this for some time. The web audio isn’t super solid. You would have to have a really decent invitation in web audio that is rock solid. The music applications still don’t use the web because it isn’t there quite, yet. 25:35 – Advertisement – Get A Coder Job 26:16 – Can you talk about the inspiration to the DSL that you are using on Sonic Pi? Why create your own DSL? 26:31 – Sam: Sure! Your syntax is a data structure, which... 28:28 – You have been using this since 2013? 28:41 – Sam: Yes I do the majority of the work. It is an open source project and a core team of developers who are the core contributors. People own their work that they have done. It’s a powerful team. There are visual contributions among many different ways. I have done the crappy jobs. 29:51 – You have put so much time into this? Are you getting paid for this? 30:05 – Sam: I am extremely fortunate to be getting paid for this. It’s being funded by various sources. These people allowed me the freedom to create Sonic Pi the way that I wanted to build it. The Pi Top they provided some funding, among other donors and such. I have a patron page that is growing. I am doing more keynotes and conferences. This was designed to help students learn how to code. I do look for contributors. The language is there but we need the tools. 32:46 – I run a company called CodeFund to bring money to open source. There are different ways that people can generate funds for projects. There are organizations that are helping us to make our projects sustainable. 33:22 – Sam comments. Sam: I am trying to find ways to be sustainable, so I can be comfortable. 33:53 – Where can people go to donate? 34:02 – Go to SonicPi.net. Don’t donate if you don’t like it. If it makes you smile then please donate. You can join and donate. 34:43 – Sam: When you have funding it can be removed in one sweep. 35:19 – You have an active community? 35:20 – Yes! Programming music communities are great. Yes, we have musicians in there and coders in there. 36:33 – People can post their music – they aren’t posting music they are posting code. 36:47 – Sam: Yes! If you can represent your music in some weird syntax, that can be stored somewhere like dots and lines (like Western music notation) then that’s great. It’s not just what the trumpet and the violin should play but what studio effects we should add. Even if you are using multiple threads those tings are always resolved. I can take my new code and hear the exact same things that I’ve heard. When you go to see performances and see live coding performance. 39:50 – Panelist comments. What does the future look like for Sonic Pi? 40:02 – Sam: It’s a business problem more than a technical problem. I am working on accessibility. I am making sure that this and that works well, and navigation to work with. Also, collaboration, too; the ability to share and contribute their compositions in one place. Can we get children from Africa to write pieces with children from Finland? 41:57 – Anything else that we should know about Sonic Pi? 42:08 – Sam: It really depends. What’s important to realize that this whole coding /music thing is a really new thing. When you see a guitar it’s had thousands of years to evolve. What we have right now is really exciting. We should see this as new musical instruments. Its’ really tough to hear people say, “code cannot make music.” Also, not to have any pre-conceived ideas, and to share their work with others. We aren’t professional musicians and just to explore, experiment, and play. People might be too reluctant to share because they are comparing it to music that they adore. 44:56 – Panelist: This whole song is 206 lines of code of the Mario Theme Song. 46:12 – Intro and outro for podcasts. 46:37 – How can we find these? 46:42 – Sam: I tweet these. A few years ago I got into Rolling Stone magazine. Download an opera and download a rock song. 48:49 – Advertisement – Fresh Books! Links: Get a Coder Job Course Erlang Ruby Ruby Motion Ruby on Rails Sonic Pi Sonic Pi – GitHub In Thread Sonic Pi Xavriley – ReadME.md Undercover SimpleCov ClarionHub Atomic Object – Sam Aaron Sam Aaron’s Twitter Sam Aaron’s Instagram Sponsors: Sentry Get a Coder Job Course Fresh Books Picks: Eric Sonic Pi Clarion Hub Artiphon Dave Simple Cov Under Cover Sam Emacs Program Editor
Panel: Charles Max Wood Dave Kimura David Richards Special Guests: Julia Evans In 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 Badges 26:35 – People still use PHP? 26:42 – Julia: Yep! 26:47 – Chuck talks about his neighbor and how he raves about this feature or that feature. 27:07 – In PHP’s defense it has come a long way. I think they are at version 7 or version 8. Sounds like they did a lot of new things with the language. 27:31 – Julia: Instead of that or this language is better – what TOOLS can we use? I hear Ruby users make fun of Java, but Java has great tools. What can we learn from that language rather than bashing the other languages? 28:13 – Chuck chimes-in. Dot.net. 28:58 – Chuck: Let’s talk about that with the opensource. 29:09 – Julia talks about the opensource project. 30:30 – Julia: I asked my manager at Stripe to do this sabbatical in advance. I worked on it for 3 months. I got a check from Segment. 31:05 – Panelist adds in his comments and asks a question. 31:26 – Julia never used it. 31:32 – I have done a lot with Ruby Motion in the past. I am curious how that would work with Ruby Spy? 32:18 – IOS is pretty locked down, so I don’t think that would fly. 32:36 – Chuck talks about Ruby Motion and how he thinks Ruby Spy would / wouldn’t fit. 32:56 – What is funny about that, Chuck, is that you can ALT click... 34:07 – Chuck mentions another app. 34:17 – Julia. 34:40 – Chuck. 35:03 – Chuck: What else are you doing with Ruby Spy that is new? 35:05 – Julia: Not much. It’s fun to see people come in to make contributions. 35:33 – Panelist: Here is a suggestion, some kind of web server that you could... 35:57 – Great idea. 36:04 – Chuck: It wouldn’t be hard to embed it. 36:12 – Julia: Sharing it between...so we don’t have to build the same thing twice. 36:33 – Chuck and Julia go back-and-forth about Ruby Spy and Pie Spy, 37:23 – Julia: Pearl was my first language, and I still love it. 37:32 – Chuck: I guess I can’t knock it because I really haven’t tried it. 37:48 – Ruby was inspired by Pearl so there’s that. 37:57 – Chuck: How do people start using your tool? What is your advice? 38:01 – Julia: Yeah just try it and see. Install it through Home Brew if you have a Mac. 38:25 – Chuck: Picks! 38:32 – Advertisement – Get a Coder Job. 39:07 – Picks! Links: Get a Coder Job Course Ruby Motion Ruby on Rails StackProf – GitHub Ruby Spy Rails_Panel – GitHub Julia Evans’ Twitter Julia Evans’ Blog Julia Evans’ GitHub Julia Evans’ LinkedIn Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks: Dave Vise Deep Freeze Charles Elixir in Phoenix Vue JS Views on Vue Side Projects Doc McStuffins Headphones David Ed Lahey Julia Growing a Business Notability App
Panel: Charles Max Wood Dave Kimura David Richards Special Guests: Julia Evans In 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 Badges 26:35 – People still use PHP? 26:42 – Julia: Yep! 26:47 – Chuck talks about his neighbor and how he raves about this feature or that feature. 27:07 – In PHP’s defense it has come a long way. I think they are at version 7 or version 8. Sounds like they did a lot of new things with the language. 27:31 – Julia: Instead of that or this language is better – what TOOLS can we use? I hear Ruby users make fun of Java, but Java has great tools. What can we learn from that language rather than bashing the other languages? 28:13 – Chuck chimes-in. Dot.net. 28:58 – Chuck: Let’s talk about that with the opensource. 29:09 – Julia talks about the opensource project. 30:30 – Julia: I asked my manager at Stripe to do this sabbatical in advance. I worked on it for 3 months. I got a check from Segment. 31:05 – Panelist adds in his comments and asks a question. 31:26 – Julia never used it. 31:32 – I have done a lot with Ruby Motion in the past. I am curious how that would work with Ruby Spy? 32:18 – IOS is pretty locked down, so I don’t think that would fly. 32:36 – Chuck talks about Ruby Motion and how he thinks Ruby Spy would / wouldn’t fit. 32:56 – What is funny about that, Chuck, is that you can ALT click... 34:07 – Chuck mentions another app. 34:17 – Julia. 34:40 – Chuck. 35:03 – Chuck: What else are you doing with Ruby Spy that is new? 35:05 – Julia: Not much. It’s fun to see people come in to make contributions. 35:33 – Panelist: Here is a suggestion, some kind of web server that you could... 35:57 – Great idea. 36:04 – Chuck: It wouldn’t be hard to embed it. 36:12 – Julia: Sharing it between...so we don’t have to build the same thing twice. 36:33 – Chuck and Julia go back-and-forth about Ruby Spy and Pie Spy, 37:23 – Julia: Pearl was my first language, and I still love it. 37:32 – Chuck: I guess I can’t knock it because I really haven’t tried it. 37:48 – Ruby was inspired by Pearl so there’s that. 37:57 – Chuck: How do people start using your tool? What is your advice? 38:01 – Julia: Yeah just try it and see. Install it through Home Brew if you have a Mac. 38:25 – Chuck: Picks! 38:32 – Advertisement – Get a Coder Job. 39:07 – Picks! Links: Get a Coder Job Course Ruby Motion Ruby on Rails StackProf – GitHub Ruby Spy Rails_Panel – GitHub Julia Evans’ Twitter Julia Evans’ Blog Julia Evans’ GitHub Julia Evans’ LinkedIn Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks: Dave Vise Deep Freeze Charles Elixir in Phoenix Vue JS Views on Vue Side Projects Doc McStuffins Headphones David Ed Lahey Julia Growing a Business Notability App
Panel: Charles Max Wood Dave Kimura David Richards Special Guests: Julia Evans In 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 Badges 26:35 – People still use PHP? 26:42 – Julia: Yep! 26:47 – Chuck talks about his neighbor and how he raves about this feature or that feature. 27:07 – In PHP’s defense it has come a long way. I think they are at version 7 or version 8. Sounds like they did a lot of new things with the language. 27:31 – Julia: Instead of that or this language is better – what TOOLS can we use? I hear Ruby users make fun of Java, but Java has great tools. What can we learn from that language rather than bashing the other languages? 28:13 – Chuck chimes-in. Dot.net. 28:58 – Chuck: Let’s talk about that with the opensource. 29:09 – Julia talks about the opensource project. 30:30 – Julia: I asked my manager at Stripe to do this sabbatical in advance. I worked on it for 3 months. I got a check from Segment. 31:05 – Panelist adds in his comments and asks a question. 31:26 – Julia never used it. 31:32 – I have done a lot with Ruby Motion in the past. I am curious how that would work with Ruby Spy? 32:18 – IOS is pretty locked down, so I don’t think that would fly. 32:36 – Chuck talks about Ruby Motion and how he thinks Ruby Spy would / wouldn’t fit. 32:56 – What is funny about that, Chuck, is that you can ALT click... 34:07 – Chuck mentions another app. 34:17 – Julia. 34:40 – Chuck. 35:03 – Chuck: What else are you doing with Ruby Spy that is new? 35:05 – Julia: Not much. It’s fun to see people come in to make contributions. 35:33 – Panelist: Here is a suggestion, some kind of web server that you could... 35:57 – Great idea. 36:04 – Chuck: It wouldn’t be hard to embed it. 36:12 – Julia: Sharing it between...so we don’t have to build the same thing twice. 36:33 – Chuck and Julia go back-and-forth about Ruby Spy and Pie Spy, 37:23 – Julia: Pearl was my first language, and I still love it. 37:32 – Chuck: I guess I can’t knock it because I really haven’t tried it. 37:48 – Ruby was inspired by Pearl so there’s that. 37:57 – Chuck: How do people start using your tool? What is your advice? 38:01 – Julia: Yeah just try it and see. Install it through Home Brew if you have a Mac. 38:25 – Chuck: Picks! 38:32 – Advertisement – Get a Coder Job. 39:07 – Picks! Links: Get a Coder Job Course Ruby Motion Ruby on Rails StackProf – GitHub Ruby Spy Rails_Panel – GitHub Julia Evans’ Twitter Julia Evans’ Blog Julia Evans’ GitHub Julia Evans’ LinkedIn Sponsors: Sentry Digital Ocean Get a Coder Job Course Picks: Dave Vise Deep Freeze Charles Elixir in Phoenix Vue JS Views on Vue Side Projects Doc McStuffins Headphones David Ed Lahey Julia Growing a Business Notability App
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 Ruby 25: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
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 Ruby 25: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
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 Ruby 25: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
Шоу нотес SPA (не) нужны https://tonsky.livejournal.com/317029.html https://twitter.com/AirbnbEng/status/1019670820065402880 https://twitter.com/giacomotesio/status/1021695798072025089 Заменяем lodash используя ES6 https://www.sitepoint.com/lodash-features-replace-es6/ https://github.com/tc39/proposal-flatMap/pull/56#issue-173327251 https://www.youtube.com/watch?v=TS1lpKBMkgg String#split с блоком https://blog.bigbinary.com/2018/07/17/ruby-2-6-adds-split-with-block.html netflix/pollyjs https://github.com/Netflix/pollyjs stalniy/bdd-lazy-var https://github.com/stalniy/bdd-lazy-var Snapshot testing https://jest-bot.github.io/jest/docs/snapshot-testing.html Elements of Clojure by Zach Tellman https://leanpub.com/elementsofclojure Мемы и телепатия https://www.dropbox.com/s/tyhhwe199obd80s/distraction.jpg?dl=0 https://ru.wikipedia.org/wiki/LabVIEW Гипотеза лингвистической относительности Приватная rake-драма https://supergood.software/dont-step-on-a-rake/ https://github.com/erikhuda/thor https://github.com/ruby/rake/blob/4f9c156/lib/rake/rake_module.rb#L28L30 load.c Кому нужен RubyMotion http://www.rubymotion.com/developers/samples/ https://github.com/HipByte/RubyMotionSamples Active Interractor или нет https://github.com/AaronLasseigne/active_interaction https://github.com/thalamusai/mandate http://www.infoq.com/presentations/Simple-Made-Easy Менторство на exercism.io https://exercism.io/tracks https://twitter.com/razum2um/status/1020210374216486912 Послушал? Оставь отзыв На hardcode.fm hardcodefm@telegram + группа hardcodefm@facebook hardcodefm@vkontakte