Part One: Paul Straw & Sean Washington (@paulstraw & @seanwashington) talk about focus, JavaScript frameworks, and rites of passage
Published 10/23/2015
In today's episode, I talk to Paul Straw and Sean Washington from Does Not Compute, the newest member of the Spec family.
Mentioned in today's episode:
- Does Not Compute
- Developer Tea episode about Focus
- Focus App
- GitLab
- Pomodoro Technique
- e.ggtimer.com
- Vue.js
- Angular
- WebComponents.org
- Flickity
- Slick
- Octopus Creative
- @PaulStraw
- @seanwashington
Note: We had a little hiccup in our editing process. Paul mentions the "modulus operator" during our sponsorship spot - this has nothing to do with DigitalOcean, but he's totally right... the modulus operator is overlooked, but it is really useful when you really need it. (So go learn about it here.)
Today's episode is sponsored by Digital Ocean! Use the code "Developer Tea" at checkout to get $10 credit on your account.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to developer tea. My name is Jonathan Cottrell. Today is a very special episode because I am recording the newest members of the spec family, Paul straw and Sean Washington. I'm going to be talking to them about their show does not compute. It is a really cool, fun show. It's a little bit longer than developer tea. If you like a little bit longer shows, it's, it's a slightly different format. Really fun. I really enjoy the show. I'm hoping to be on their show a few times as well. Thank you to today's sponsor digital ocean.com. If you need to spin up an SSD server, this is the place to do it. Digital ocean.com. We'll talk more about them later on the show, but let's go ahead and get into the interview with Paul and Sean from does not compute. Paul and Sean, thank you so much for joining me on today's episode of developer tea. Uh, thanks for having us. Yeah, it's awesome to be here. Yeah, I'm excited about the, about your show. Uh, tell me a little bit about does not compute. Actually tell me about yourselves. Let's, let's hear about Paul and Sean and what you guys do every day, uh, outside of podcasting. Sure. So I'm Paul straw and I'm currently the consulting director at octopus creative. Um, I do different types of programming there. A lot of stuff in Ruby and JavaScript primarily. Um, and we work with clients, mostly startups in the Bay area and also some larger companies like Google and HP outside of work. I do podcasting. That's great. As it, as it turns out, it that's, that's exactly what we're talking about today. Uh, yeah, I'm, I'm Sean Washington and I'm the lead developer at octopus. And there I do basically the same thing Paul does. I build client apps with Ruby and JavaScript and outside of work. I play guitar and I surf and I chat with Paul occasionally. So, so Paul does the podcasting and you do, you just talk to him. Yeah. So we were always talking at work and we're pretty much always talking outside of work as well. Uh, so I guess naturally it felt natural to kind of record that. And we, we, you know, we always thought our conversations might be able to help some people. So why not share that? Yeah. So, I mean, it was, it was a very natural thing for us. We, we've always kind of, just had that conversation going on where we're talking about dev stuff and all the related things around that the culture and whatnot and so one day i was just like do you want to you know start recording a podcast and we gave it a shot turned out okay so give me give me an example of a conversation that you guys have had recently that ended up uh kind of making for good podcast discussion um i think one of my favorite episodes actually was after a tough week for both paul and i we we you know we just called we just did the skype call and and i mentioned you know man i'm feeling kind of burnt out it's been a really tough week and we you know we kind of talked about how not a whole lot of people talk about being burnt out and how that's okay and what to do if you feel like that sure yeah yeah it's it's stuff around you know being burnt out so like productivity that sort of thing and it's also a lot of a little bit more in-depth topics uh we've spent a bit of time in a couple episodes now talking about javascript framework front-end mvc that sort of thing um and just generally kind of cool stuff that we've seen over the last week very cool well uh i think we can talk about a few of those things just to make this kind of like a hijacked episode of does not compute on developer t how's that sound sounds great works for me all right then well uh so tell me uh each of you i guess what is a typical kind of workflow look like for you when i say workflow i don't mean like what tools specifically you're using necessarily but like how do you guys maintain focus focus is kind of a big a big theme on developer t every time i talk to another developer each person has their own way of doing this how do you guys maintain focus focus is an interesting thing um i'm not necessarily great at it but i have been fortunate enough where my programming jobs that i've had have been pretty flexible in terms of hours so during the day a lot of times i have trouble focusing but i work super well in later hours of the day so you know i'll go into the office and i'll be around to collaborate with people and work through things but then later on i'm able to just kind of really focus in when i'm at home or on weekends or whatever and that obviously doesn't work for everybody but for me it makes a lot of sense just because that's kind of how my brain functions for me i actually focus better in small bursts and i remember i don't know which episode it was but you mentioned an app called focus where it actually blocks different websites and apps so i've actually been using that i bought the three license for that and i actually just set a timer some days you know it's 15 minutes some days it's an hour and i'll set that timer and i will try my hardest not to do anything until the timer is done so i mean i i block everything tweet bot i block messages i block emails everything so there's and most of the times i actually roll with notifications uh turned to do not disturb uh so because if if a box pops up in the top right i will click on it i can't help it uh and if i see a red circle in my dock i will have to get rid of that it's just a thing i have yep i'm the same way i get stressed when i see people's home screens and they have like 100 unread messages it drives me insane me too i i i'm that way with tabs even in my browser if i'm not using a tab i'm not using a tab i'm not using a tab i'm not using a tab i'm not using a tab i'm not using a tab i'm not using a tab i'm not using a tab i'm not using a tabij and i have people there's people who work at whiteboard they'll have you know upwards of 20 or 30 tabs open on on their in chrome or something and i'm like how do you even function you can't even read the titles on the tabs to even know what to switch to it's crazy well paul does that paul does that paul you're crazy he's crazy um one of our co-workers nabil actually i think takes the cake though i think he has paul beaten the number of tabs he has open my dock is all red circle I can't imagine. So just a quick like random tip for anybody who gets distracted by those notifications. A very fast way of turning on Do Not Disturb is just to option click. And that's on Mac OS X. I'm assuming most of the people who listen to this are probably on Mac. If you're not on Mac and you're doing something on Linux, then you probably already know how to turn off your stuff. But option click that little, what is the name of that icon? The message center? Notification center. The three bars in the top corner? Yeah, it just clicks it off and on for you. And it just grays it out. That's really cool. I had no idea. Yeah, it's a little bit easier than dealing with the whole animation and stuff. So you mentioned something interesting to me. You said short bursts. I know some people who can sit at their desks for like eight hours straight if you let them. You have to like pull them away from their desks. I cannot do that. I have like a two and a half hour limit before my brain kind of goes. And I'm wondering, you know, have you guys ever experienced like what kinds of things make it harder? You mentioned burnout. Burnout for me makes it really difficult to find. I mean, I find that. The more I'm exercising, the more I'm active and the more that I'm stepping away from the computer, the more of those longer chunks that I can do. I'm really glad you mentioned that. I'll come back around to that. For me, it's really more of a, instead of, oh, I can work for an hour or two. It depends a lot on the task. Again, if I'm doing a lot of collaboration with people, if I'm walking around the office talking to people, doing whiteboard sessions, that sort of thing, then that kind of naturally breaks it up into little chunks. But when I want to sit down and get a bunch of programming done, I want to get these five bugs closed or whatever. I'll get into a flow state and I'll sit there for six hours, eight hours, 10 hours, 15 hours. But those are more rare. And do you guys track bugs through GitHub or what do you normally do? We use GitLab, which is like an internal GitHub. It's like a self-hosted GitHub. Interesting. Yeah, I've noticed that everybody has a different answer to that question. I know, for example, I've talked about Pomodoro technique on the show before. Kent Beck uses Pomodoro. I was tweeting out the other day trying to figure out a good Pomodoro app that allows me to kind of integrate it with other stuff and maybe Apple scripted or whatever. I wanted to be able to click the focus tab in my menu bar and start the Pomodoro timer and see a timer. But it doesn't give you a visible timer. And so I was trying to figure out, you know, is there one out there that does? And I ended up doing using egg timer, which is just a URL. E.G.G. time. What is it? E.G.G.T.I.M.E.R. And then you can pass slash 30 minutes to it. And on focus, you can also start a script like there's a start and a stop script. So you can open a URL with the start and the stop script. So every time I start a focus session. Now it opens egg timer in my browser, which is pretty cool. It works out. You know, I thought about a use case use case for those those scripts and I didn't really come up with any or haven't set any up. But that's probably that's probably the first good one I've heard, actually. My unfocused script tells me to walk around a little bit. Like like that uses a say command or whatever. I actually I got an Apple watch a few months. Ago and that's actually been kind of help for me when I do get into those really long deep sessions is the Apple watch telling me that I need to stand up. Because even even when you're focused, getting a tiny bit of a break can be a huge help for just being able to think about things and get away from the computer and maybe figure out some solutions you wouldn't have otherwise. Great. So now we're going to take a quick sponsor break and it happens to be a perfect segue because both Paul and Sean. Have used our sponsor for the day. It's DigitalOcean.com. Tell me why you guys love DigitalOcean. The modulus operator, man, it is so useless. Ninety nine percent of the time. But then that one percent of the time, it's just the best thing. You heard it straight from the mouth of of Paul. Sean, any anything to add there? I've never had any issues with DigitalOcean. Like Paul said, we've used them for multiple server setups like server. Clusters. We've used them for, you know, one off five dollars service for a client hosting one website. And everything's been everything's been great. Automatic backups, automatic scaling. If you need it, it's it's it's really the perfect service. They do it right. So DigitalOcean is amazing for so many reasons. We use them. We get basically all of our clients to sign up. What's really cool about them for us is that they have plans for everybody. It's you can spend five bucks a month. And get something that will run your, you know, your WordPress site or your static site or whatever. Totally fine. But it's also really easy to upgrade. And we also have a bunch of clients on rails where we have a load balancer and a database server and an elastic search server and three app servers and just all the stuff interacting. Their prices are amazing. Their their uptime is really solid. And it's just it's just an amazing service. They're great. Totally. I've used their resources so many times. I mean, it's perfect for side projects and stuff, too, because five bucks is a little bit of nothing compared to the value that you're getting. And by the way, you get a SSD server super fast. And I mean, it's it's good enough for pretty much any side project, by the way, that that five dollar tier is. The cool thing is with this sponsorship that DigitalOcean is doing for us, you can use the code developer T at checkout and you get ten dollars of credit, which is basically like two months of free time on one of those servers. Which is awesome. It's just I mean, they're basically just giving you free resources all over the place. So go and check it out. DigitalOcean.com. Of course, that link will be in the show notes along with the code developer T so that you don't forget about getting that ten dollar credit. You mentioned one of you mentioned I can't remember who that being active outside. I think Sean being active. You feel more productive, which seems like like a paradox. Right. The more time I spend not working, the better I am. And I think that's the key to that. And I think that's the key to that. And I think that's the key to that. And I think that's the key to that. And I think that's the key to that. And I think that's the key to that. And I think that's the key to that. At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At At in productivity, I've saved time by being active and healthy, you know, and it's just, to me, it's even more of a paradox, uh, that I, that I consider the gym like a part of my work day now. Does that make sense? Yeah, it makes, it makes total sense. And I think that in working out, it's not only just the act of keeping up your body, but it affects your energy level. It affects your focus level. Um, it affects you as a whole complete person, you know? Um, and I think that's why I think it's so important for me and, you know, everyone's different, but, uh, I can definitely notice if I'm working a lot and not, not working out or not surfing or something. I've actually had my boss come up to me and say, Hey, you know, how long has it been since you surfed? Because I can tell that you're, you're visibly more stressed and you're visibly more worn. And, uh, yeah, I always thought it was interesting that, you know, it plays that big of a part that people can notice. We need you to go surfing. Yes, please go surfing. You need, you have a deadline to get in the water, uh, do something, you know? You've actually been paid to surf before too. Yeah. We've had, we had a client come up from Miami who he's heard of Santa Cruz. We're from Santa Cruz, by the way. He's heard of Santa Cruz. The surfing here is really good. And he wanted to, you know, hit the, hit the waves. So we took a few hours out of the day and took him down to one of the spots and took him out. You know, that makes you professionally a, you are a professional surfer technically because you got paid to surf. You can tell people that. Nobody would ever know that by watching me. I'm doing good. I'm doing good not to drown. I mean, that's, that's where I'm at. So. Same. I guarantee you that you have surfed infinitely more than I have because I've never surfed. True story. Man. Well, I've tried, I've tried my, I've tried to work it on Paul and he doesn't, he's not having it for a very specific reason, which you can outline at some point if he wants, but. We can talk about that on a different episode. I think that's a different podcast. Yeah. Well, that's a very good reason for somebody to go and listen to a, if you don't have a compelling reason yet, go and listen to dude does not compute for that one specifically. Yeah. We'll have to, we'll have to bring it up. But if anybody it's an open, it's an open challenge to anyone, I guess that hears this, if they want to come down to Santa Cruz, I will take them surfing. Is that a challenge or an offer? I don't understand. I dare people to come here and surf with me. It's like taking somebody hiking or something. Yeah. I like it. Okay. So we've covered, we've covered focus. The, another big theme that we talk about here on developer T is learning. And I know you guys have recently been talking about JavaScript frameworks, the MVCs or MVVCs or whatever, M stars, whatever. So tell me what's your favorites or a better way of putting that is what are you guys using? Oh man. View.js. Yep. V U E we're, we're both using this lately. I can't remember how we heard about it. Sean, you might've introduced me to it or maybe. Oh, Johnny holiday. He was building his freelancer app. I can't remember what it's called, but he wrote a blog post about trying to choose a framework and he picked view originally and then switched to angular because of the larger user base. But that's how I found out about it. Yeah. So we've both been using view and it's been super cool so far. It's, it's one of those things that I've been using for a long time. I've been using it for a long time. It's one of those things that I think I, at least I personally have found is very rare in software where it does what it says it does. And it does it really nicely just consistently. So, and, and that's kind of something that, and I know there are a lot of people out there who love react and angular and all that kind of stuff. And those are, those are definitely great for certain use cases, but it's a lot of code and a lot of things to learn. Whereas view keeps it pretty simple. So as a consulting business, especially it makes a lot of sense. And I've been using it for a long time. So I've been using it for a long time. And I've been using it for a lot of smaller projects and it's not like we're always on one thing for five years or whatever. So having something that you can spin up in a new app really quickly is really, really useful to us. Not only that, but the documentation for me has been really great. It's very clear. And I think that's one of the biggest things for me that I look for when I'm choosing my tools are the docs. Are they clear? Are they written well? They concise, you know? And I've, you know, I've tried out. It's like a minimum for me. Yeah, definitely. It has to have great documentation for me to be able to bring it into a business. Yeah. And I had to work on an app maybe a year and a half ago, I think it was. So I was one of the developers on the app and there were a few other contractors on it. And that was my first introduction to Angular. And at that point, you know, some people might disagree, but I thought the documentation was horrible and I had a really, just really bad experience with it. And so after that, I jumped to Backbone, you know, and Backbone's docs are just great. I really like it. And the annotated source was awesome as well. And yeah, so for me, moving from Backbone to Vue was kind of a natural progression because it's a lot like Backbone, but there's a lot more to it that you get for free. Interesting. So here's my question about it. And this is my question about pretty much any JavaScript framework at this point is some of these frameworks really kind of, I won't say they force, but they're really only best used if you kind of apply them to the whole thing. If there's like a routing built in, I know Ember is this way. Angular seems to be not so much this way, but Angular is so big. The last time I looked at it that I just couldn't wrap, I couldn't wrap my brain around it enough to feel like I was comfortable with using it. And so I just avoided it altogether. Can you create, pretty easily create like just a part of the page that is controlled by Vue and then do server side rendering for the rest of it? Or how does that work? 100% Vue. Vue. Vue is a really nice balance where they have a router component that I think was just released or is just about to be released or something like that. But that's not the focus. So if you want, you can absolutely build a full on single page app, all JavaScript, the whole nine yards. But at the same time, Sean and I have actually used it in a bunch of things. I think you're using it in a Statomic site right now. Shopify shop actually. Okay. Shopify even, and that's even less control. And I'm using it in a real, real site currently. And it's, everything's being rendered from the server and then just being mutated on the front end with Vue. It's really super flexible in that regard. And one thing that I really enjoy about Vue is that it gives you the whole web component option as well. So you can register your, your views essentially as components and you can drop those directives into the DOM. And so as a developer, you know, if Paul passes me code, I'm looking through, through maybe a Vue template or something. And I see, Oh, what's this product image viewer tag that obviously has to be something custom, right? And it just, it just works, you know? So that was my, that was the first thing I said to Paul. I was like, you know what? This might be one of the only things that I've used in quite a while that actually works every, in every case that I've used it so far. So for those of you who are listening, who don't know what a web component is, I will, I'll include a link in the show notes to, I think that where's the official documentation for that? Is it on? Mozilla or is it on a Google documents? It's, it's definitely one of those or maybe both. Probably both. It'll be, it'll be in the show notes, right? It will be in the show notes. So you guys know more than we do right now. Yeah. But also in that, in that with the vein of web components, you're able to nest them. And so I actually have a component on the Shopify store where there's other components inside of it and it works flawlessly. It's just great. Right. So you actually made a Flickity component the other day. And for anybody who doesn't know, Flickity is, it's like a JavaScript slider carousel thing. It's made by David DeSandro, the same guy who made Masonry and Packery and all those awesome tools that are all over the web. But now you can literally just, because of this component you made, you can literally just type less than Flickity, greater than, you know, standard HTML tags. And it just sets that up for you. And you don't have to write any JavaScript. JavaScript. And it's super cool. And it leaves you with a clean DOM, which is very important to us. It's almost like helper functions in Rails, right? Yeah, exactly. Exactly. So there's a couple of cases where there's a few different sliders on one page and I'm just reusing that tag and I pass in options. So Flickity, you can pass in custom attributes that get passed into the component. So like Flickity wraparound equals true. And so that way I can customize each slider. To, you know, to the specification or the design without having to write any custom code for it. That's really cool. I use, what is it? Slick. Slick. Slick.js. Yeah, that one has solved every problem that I've thrown at it pretty much. I can't get away from it now. Yeah, I think I used Slick on a project a couple months ago as well. It was nice. I have a great API. It's just really well done overall, I think. But everybody has their own slider. You know, I've written a slider just like both of you probably have, so. I have as well. Yep. Yeah, I have actually. It was like, if you're learning JavaScript, you kind of have to do this. Yeah, exactly. A rite of passage. That's totally the right terminology for it. It's just something that everybody needs to do. It's like making a blog in Rails. Yeah. But the thing is that when you do something like that, you gain the experience and you understand why other people maybe have made those same choices too. And I remember when I first, started on Octopus, I had, my experience was basically making WordPress themes in some small Rails kind of maintenance stuff. And so when I first joined in, I remember, I don't know what Paul remembers this. I would, he, you know, they would assign me a project and I would, I would be like, all right, I can use this jQuery plugin. And Paul's like, no, you can't, you have to write that. And he would make me write all this stuff from scratch. But I'm very thankful for that because I gained so much more experience from doing that. Thanks so much for listening to today's episode of Developer Tea, my interview with Paul and Sean from Does Not Compute. Make sure you check out their show at spec.fm and subscribe in whatever podcasting app that you use to make sure you don't miss any episodes of Does Not Compute. Of course, if you don't want to miss out on the next episode of Developer Tea, where we finish out the interview with Paul and Sean, you'll need to subscribe to Developer Tea in your podcasting app as well. You can find us on iTunes and Stitcher and pretty much any major podcast provider. Thank you for listening to Developer Tea. And until next time, enjoy your tea.