« All Episodes

Interview with Daniel Rapp, Creator of the Doppler JavaScript Library

Published 5/14/2015

Today, I interview Daniel Rapp, creator of the Doppler.js library. Daniel is a computer science student in Sweden who is constantly investigating the intersection of math and creativity using code. Doppler became popular on GitHub, despite the fact that it isn't practically useful for most developers; this interested me, so I decided to reach out to Daniel.


Advice from Daniel:

"Main thing was a lot of experiments.... I published everything I created... Experiment and keep learning."

"Play around with mathematics to learn development while you're learning at school."

"Create a lot of small projects. Don't create anything too big before you're ready."

"As soon as you start doing something for money, it's not as much fun. I do this because it's fun."

@danielrapp rappdaniel.com


Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and today I have the pleasure of interviewing Daniel Rapp. Daniel is a developer who lives in Sweden and he created this awesome tool. I guess it's really more of a library or a plug-in. I don't know what you call it, but it's an implementation of Doppler in JavaScript. If you're like me, that sounds super interesting to you. And it sounded interesting to a lot of people. In fact, it reached the front page of GitHub as over a thousand stars on GitHub as well. So I wanted to talk to him a little bit about that and also about some of the stuff that he's doing. He's not the author of some big framework and he's not working at any particular company right now. In fact, Daniel is currently a student and he's interested in math and computer science. This is coming directly off of RappDaniel.com. Go check that out. But he's got a bunch of experiments and projects and they're just super cool things. And I wanted to talk to him a little bit about math and creativity and how those intersect specifically how they intersect using code. Thanks so much for listening to this interview. I know you could be doing anything else, but you're choosing to listen to Developer Tea. While you're listening to this interview, why not go ahead and subscribe to Developer Tea and whatever app that you listen to podcasts in that way you won't miss out on any future episodes of Developer Tea. Now, let's get to the interview with Daniel Rapp. Hey, Daniel, welcome to the show. Hey, so I'm looking at your site. You have so many cool experiments and projects on here. I could sit here all day and just inspect the source and see what you're doing. What drives you to make all of these experiments that you make here? Oh, that's a good question. Usually school. There's a lot of cool mathematics that I'm studying. So I just like linear algebra from a while ago. I was learning that and I decided to play around with 3D stuff and that's why I created CUBE, which is a 3D game on my site. For example. Yeah, and so if you're listening to this podcast and you have a computer in front of you, you can go and find the experiments that we're talking about at Rapp Daniel, that's RAPP Daniel, D-A-N-I-E-L dot com. That specific one is that front slash experiment, front slash CUBE. And there's just all these awesome demos that you have. One of my favorites on here is under the project section, the very top one. It's called plot. And all it does is just plot the, it's a bunch of, I guess this is with Canvas or something. Yeah. But yeah, it's really interesting because it gives you a more introspective look at mathematics basically, right? Sure. Super interesting. So I also wanted to have you on the show because you did another experiment that you've posted onto GitHub. And I don't know, what do you call this? Is it a plugin? Is it a front? What is it exactly? It's an experiment. It's an implementation of a paper really. And I made it into a library. Okay. So you could use it as a library, but it's not really the main point. It's mainly to experiment with web audio. And what this thing is for listeners, it is a Doppler effect. Basically, you can sense motion using your computer's microphone using the Doppler effect. And if you don't know what it is, I don't think we're going to sit here and try to explain it on this show. But the long and short of it is that you can actually wave your hand over your computer speaker and actually see a visualization of your of that motion. But more than that, you can actually manipulate things, get those data that data back through an actual API in like front end regular in the web JavaScript. It's pretty interesting. So what's I wonder why? So you tell me 1,808 stars as of today. And this was released a month ago. So it's that I would consider that popular. Wasn't it on the front page of GitHub at some point? And product hunt and hack news and lots of places. Did you push it to those places? I pushed it to daily GS if you know that site. I do indeed. I failed. Yeah. I made it to him. And he posted it on the site on that. All I did really. Man. And I wondered. So what's so interesting about that to me is that there's all these people who are on GitHub going throughout their day to day lives, probably writing a bunch of business logic code. And then they come across this like what seems to be a pretty groundbreaking thing and get really excited about it. Yeah. How many people have contacted you about Doppler? I don't know. Tents of people. Lots of people. Yeah. Tents. Sure. And I think it's because we're so interested in the intersection of math and creativity. Yeah. I think especially this is like this is really kind of targeted to front end developers. And they really kind of see mathematical concepts in their day to day lives really. It's not it's not as mathematical front end development as like back end really. So when stuff like this appears, I think it's unique and really cool. I totally agree. As a front end developer, a lot of the time, the things that I'm seeing, the most math that I do is trying to figure out what ratio I need to use for my parallax thing. Right? That's so commonly the case where math and science and all those things that we really appreciate while we're in school, those are kind of lost in the art of front end development most of the time. I'll be right back with Daniel after a quick word from today's sponsor. Today's episode is sponsored by Code School. Code School is an online learning destination for existing and aspiring Developer That teaches through entertaining content. By pairing immersive video lessons with in-browser challenges, Code School has become the best place to learn new technologies from the comfort of your browser. Whether you've been programming for decades or have only just begun, Code School offers something for everyone. Choose your learning experience from Code School's five main paths. Those are JavaScript, HTML and CSS, Ruby, Git, or iOS, or take advantage of Code Schools' growing number of elective courses on topics like TRY-R and Chrome DevTools, more than a million people around the world use Code School to improve their development skills and learn by doing. Visit www.codeschool.com for more information and to start playing courses today. I don't think that this is the only project that is popular in the math department. Can you explain to me, so you're a student, where are you a student at currently? Linchoping University. You're studying computer science? Yeah. Very cool. Are any of the projects on your site actually for some of your classes? Yeah, the TWS.js, which is a library, I guess, for determining if a given sentence can be replied with that she said, we're not. Yeah, I looked at that one earlier. I'm assuming you are a fan of the office as well. Yes. Really interesting. That was for a school party. It's interesting to me because a lot of people would look at that and think, oh, it's just, you know, he's just trying to make jokes. But there's some really serious stuff going on with sentiment analysis and trying to do a little bit of NLP and it's all done in JavaScript with that project, right? Yeah. Let me talk to you a little bit about something that I think is really near and dear to the listeners' hearts. That is learning, especially the very young developers who listen to this show. They always wonder, they'll look at, I guarantee you, they're going to look at your site and think, how in the world did he get here? Where do I even begin to try to make something like the function plotter? For you, now you have a pretty extensive amount of experience. You have some way of approaching these things. But for somebody who doesn't know much of anything about jQuery or whatever, writing a jQuery plugin or sitting down and trying to manipulate Canvas in a way that is visually pleasing seems like a huge stretch. Can you tell me kind of what the learning process was for you as a beginner? It was a while ago, so it's hard to remember, but really the main thing was just experiment, a lot of experiments. The thing is that the reason why I have so many products on the site is that I really published everything I created. That's kind of the key for that. But the thing you just experiment and just keep learning, when I started, there wasn't can academy code thing and there wasn't the various code school and all the great things that have appeared since then. I would definitely recommend that for someone starting out and just experimenting and just, especially because especially like playing around with the mathematics and stuff you're learning at school, I think is a great way to both learn development and to learn the thing you're learning at school, to integrate those. Yeah, and it gives you something to actually explore the subject a little bit deeper with. Yeah, exactly. Yeah, I had a similar experience in my master's program and we would be given a project around an idea and the implementation details were up to us to figure out. And so there was very little taught in terms of the actual programming language, like syntax or even computer science things like we didn't, I didn't ever have an algorithms class, for example. But I did have conceptual projects that were assigned to me and everybody in the class approached them from a different perspective in terms of technology that they used. And in terms of the level of creativity that they brought to that project or the level of aesthetic energy that they put into it, some people would do really bare bones just to show the raw concept and then other people would go on to develop full on 3D games in Unity or something like that just to show that concept. And it was really interesting to see how the same underlying concept can be executed in so many different ways. Yeah, that's cool. Very interesting. So what if you had just 30 seconds to sit down with a young developer or with a more experienced developer, either one, and give them some kind of advice about their development career? What would you tell them? Create lots of small products and that's important. Don't get too ambitious and try to create something too big before you're ready. That's what I would say. And I actually have talked to my nephew, Luis, who recently just started developing and that's kind of what I told him. And just web stuff is really cool to develop too because it's really easy to develop and it's really easy to show to other people and get you motivated that way. Yeah, that's great advice. I agree with the create small things first. That allows you to kind of focus really, really narrowly on something. High quality, small scale stuff. Yeah, that's great. So right now you are, like we said, your students. So the work that you're doing is not for a company, it's not for any particular paycheck, it's just to explore concepts, right? Yeah. So would you say that that provides you with some kind of freedom in the way that you're learning or does it seem a little bit harder to create when the like monetary incentive isn't there? No, the opposite probably. I mean, there's this, I'm not sure if it's from three-parker or whatever. From the south park guys. As soon as you start doing something for money, then it's no longer fun. I'm not sure that's actually true because I haven't done much work. But I think it's really fun to, I mean, I do this because it's fun. I do this because I want to, I get an each that I want to scratch and that's why I create the products. That's awesome. I think that's important for people who are learning early in their career too. A lot of people start development because they want to make a bunch of money and they forget that sometimes the best way to learn is to have fun. Yeah. I'm a big proponent of doing things for the sake of play. This is why I think games are so important as well. As we learn through play, we learn through enjoyable experiences and things that we actually control on our own that we aren't forced to do that you aren't doing this so that you can eat breakfast tomorrow. You're doing this because right now you are choosing to do this. It's pleasing to you to do something like what you are doing right now. It's okay. Yeah, absolutely. This has been great. I really appreciate you coming on the show, Daniel. If anybody wants to contact you or to get in touch with you, they can reach you on Twitter, correct? Yeah. Daniel rap. Daniel rap. That's Daniel rap. That'll be in the show notes and so will Daniel's site and anything else that we've mentioned on the show that I don't remember that we've mentioned. Thank you so much, Daniel. Thank you. Thank you so much for listening to this episode of Developer Tea. If you have feedback or if you have thoughts or questions, even questions that I can answer on the show, you can contact me on Twitter at add Developer Teaor you can email me at developertea@gmail.com. The show notes for this episode can be found at developertea.com. You can also listen to all of the past episodes and find their show notes on developertea.com as well. If this show has provided value to you, you can give back by going to iTunes and leaving a review. This is the best way to help other developers find the show. Until next time, enjoy your tea.