Ampersand.js, SPAs, WebRTC episode artwork

EPISODE · Jun 13, 2015 · 1H 15M

Ampersand.js, SPAs, WebRTC

from Changelog Master Feed

Henrik Joreteg joined the show to talk about Single Page Apps (SPAs), Ampersand.js, WebRTC, JavaScript coding styles, and more.

NOW PLAYING

Ampersand.js, SPAs, WebRTC

0:00 1:15:08
of MATCHES

TRANSCRIPT · AUTO-GENERATED

Welcome back everyone. This is the change vlog on your host Adam to the Koveac. This is episode one 60 in on today's show It's all about JavaScript single page apps human ways of coding We're talking to Henry Korteg the author of a book called human JavaScript and also a non framework frameworky framework for JavaScript called ampersandias if you haven't heard of it You guys check it out. We talked about that single page apps with our TC We even touched a little bit on HTTP to so you enjoy that piece there We have three awesome sponsors for the show coach ship top-tow and also dream host our first sponsor is coach ship Co-chip is a hosted continuous delivery service focusing on speed security and customizability for you and your team You can set up continuous integration in a matter of seconds and automatically deploy your code when your tests have passed Co-chip supports your github and your big bucket projects and you can get started today with co-chips replan So you decide to go with a premium plan You can use our code to save 20% off any plan you choose for three months the code is the change-law podcast again That will get you 20% off any plan you choose for three months head to co-chip.com slash the change while you're started and now on the show Alright, we're back got a great show for you today When we've been planning on for a bit got Henrik you were taking on the call today developer at and yet JavaScript well-known Well-speaking you're you how many talks have you given this year alone?

Oh, she's I don't know this year's been kind of busy It's probably been four or five or something four five and so you're sort of you got this one talk that you've been kind of Doing a few times or several different talks you're doing it's a lot of the same messaging But I try to evolve it a little bit each time just because otherwise it gets boring and I get bored of giving it So and then you die and then you die I die yeah, it's a inside joke one of your talks, but We've got your line here as well Jerry. What's up, buddy? Excited talks and more JavaScript. I know our loyal listeners love love love the JavaScript.

So here we go So what is this JavaScript thing you take a question? It's an interesting thing on the web. I don't know we'll find out I guess all right. Well, this is right up Jared's.

We'll camp or we'll house, you know, not switch this not mine But you know Jared you're you went to ng-conf not long ago What other conferences have you gone to recently that were around JavaScript? Space City JS I'm also helping organize the Nebraska JS conf this summer as well speaking of conferences Yeah, we're doing one call the real-time cough It's one that we did a few years ago and we took a little break and we said we never do it again and we are So it's just kind of about like a lot of real-time web technologies and really kind of trying to be a little bit more Thinking about what the web should be and what we should be working on rather than just the stuff that we could be doing So what made you change your mind? You said you never do it again. I'm gonna largely blame Adam brought for that But you know, it's just it's just it was a good event We met a bunch of cool people and we we just want to do it again.

So cool. I went at that It's coming up in the fall here. I'd have to put the exact date in the show mates I should I should know but I don't I thought I had something from last. Yeah, it's October But we're selling really good tickets right now.

So first kind of batch of tickets is up right now. So it's a ticket tool That's a that's a pricey ticket. It is but we do a bunch of really cool stuff. So like we spend it all We're not trust me.

We're not gonna make money on this thing. So it's not a property thing, right? Yeah, yeah It's a community does just yeah I just check out the one that we did last or the last one that we did and you'll you'll understand why we charge what we charge Cool. All right.

I want to do that. We like like on conferences a lot of fun. So aside from Putting on this conference and speaking to conferences You're also pretty well known for a book you wrote and Anderson JS and your work at and yet and some of the things you put out in the open-source world where if if you were I guess on the Change log stage and you're introducing yourself to an audience that some know you some don't know you how to introduce yourself Oh, she well, so I mean, I'm a web developer right like I think that's kind of the most important thing But I use JavaScript to do so I've been kind of lead JavaScript to help her and yet for a while And I just do a bunch of open-source stuff. I've got a few hundred open-source modules and stuff and you know things like Around where to see but just a lot of kind of thinking and talking around how to structure web applications in a way That doesn't like make an absolute mess of your code and so that other people can work on it, etc I wrote a book called human JavaScript that kind of attempts to encapsulate some of that knowledge and also kind of Training and teaching around those kinds of things as well.

So I don't know about something. Yeah, I think and yet you guys are perhaps most Open-source famous for and percent JS first. Oh, is that true or do you guys have a bigger project? It just hasn't hit my radar Well, we have we have one that we share a while ago called simple web RTC The PCP just takes in terms of like number of stars on GitHub.

That's probably up there as well, but okay But yeah, it just kind of makes web RTC something that an average web developer can do without having to like go study How this stuff works too much, right? So but yeah, ampersand is definitely kind of our the thing that I think people have kind of seen the most of so So you want to give us the elevator pitch? Yeah I mean if you take if you think about something like backbone like a lot of people like the patterns in backbone But there's a lot that backbone doesn't do and you know coming from kind of the node world We like to split everything up into small modules So what we did is we kind of started with backbone We used to build a bunch on backbone and then we ended up kind of just working and doing our own thing So we took you know each kind of component that you might have in backbone, and it's published then as its own model It's all written in common to us. So you have to like install it with MPM But as a result, you know, you end up only kind of shipping what you actually need and people only grab and use the little portion of it that they want You know, we could have just done the whole thing as a bunch of completely separately named the things But we just kind of called it in percent to give it something to kind of wrap it all together I assume the other time there is the thing that sits in front of your business name Yeah, we'd rather like the symbol there for some reason, but I like that.

Yeah So what's ampersands relationship to backbone? Is it inspired by is it a fork? Is it a rewrite? Is it the same thing?

It definitely shares some code we At first I was just kind of writing a replacement for the models because I wanted models that were a little bit more specific as to what they would contain So you know like back when models here, you have to actually define what you're gonna store in a given model You have to at least give it kind of a name and a type And then that the idea is that someone else who's kind of new to a project can like jump in and read your models and actually make sense of What's being stored and you know kind of the state that they have available But other portions like the router for example are you know much closer to what back when does and you know a lot of code You know, in some of those cases, we you know, we left a license in because there's so much your code, right? So it kind of varied depending on which component but definitely if you're kind of from the backbone world, you'll feel kind of at home here So I don't know we're talking kind of pre-call about Ampersand the modularity versus, you know, some of the other frameworks and back one itself Who would you say ampersand is for is it for the beginner? Is it for the advanced person who is ready to pick and choose? Who's your core audience?

It's definitely not as easy to pick up as something like Angular You know, I think as people who've done this for a little while probably are gonna understand it and understand this value a little bit easier That's not to say though that you couldn't start with this But I would tend to say you know for the most part is people who who kind of like the patterns in backbone But they want the modularity and stuff that's that's a big thing in the node community. So But yeah, we you know my favorite thing is that the way people are using this is like they'll just grab various pieces like What's out for example? They use just ampersand states? That's the only model of ours that they use and these reactors that you layer and all that and then you get you know Other companies that are just using like I know some folks at Yahoo that only use the router like and to me That's a good like kind of pat on the back that we did something right because that's the whole idea It's like you don't have to go all in you can you know, here's a bunch of tools They work nicely together if you want them if you don't just you know pick and choose make them match with whatever else you want, right?

So react or ampersand view or some other way to do things in the front Yeah, I mean people have been doing it mixing up with what there's one called riot. There's our active There's you know a bunch of these like kind of u layer things that I've seen people using a percent with so the fact that you can kind of pick and choose Is I would say one of its key features? Being so inspired by backbone. Would you say it's pre-requisite that have some working knowledge or backbone before you're productive?

Or could you just start writing with ampersand? I would hope not I you know It's possible that we need to do a better job of writing more intro level guides But we have some of that stuff on the site and it keeps getting better So that's something that if you know if you're new and you're just looking into it and you're confused like file a bug We want to know because we want to make it more approachable for people who are new So you have to ask the question you know every framework that comes on we tend to ask this and it's kind of the why Why ampersand in light of not just in general, but in light of your other options, right? Because there's such a diverse landscape. There's so many tools out there right now that's it's commonly asked and talked about Which one should I choose?

So if you had to put it against an emperor against an angular or a framework like Aurelia and you say well Here's where ampersand really shines and then maybe here's where it's not a great pick could you do for those? Yeah, I think so I mean in some ways I kind of hate pitching it or defending it at all because I wanted to just kind of Stand on its own and like I think the important thing is that people pick tools that that kind of fit how they want to work and that let Them be productive if for some people that's that's something like angular then great If that's meeting all your needs and like stop don't don't need to you don't need to go replace it, right? But I think you know where it does shine is kind of being able to handle and tolerate change over time You don't have to go all in that's kind of you know someone referred to it as kind of a fear of commitment framework I kind of don't even really like calling it a framework at all And I I will take myself a little bit for having contributed to this little kind of range of available options here But for us it was just a matter of like hey, here's the stuff that we're using this seems to work pretty well for us Let's share it and see what happens and you know come to find out as people Seems think the same so there are people that have kind of referred to it as a kind of a natural kind of backbone 2.0 Sort of thing I wouldn't go that far but It's kind of a node flavored backbone. I guess I shared an article in the wish of a weekly email every Saturday called James I don't know if you subscribe or not, but in last It sounds like hey, you definitely should I don't know why or not But one of the articles we share was and it was the most popular and this latest issue was did you pick the wrong way framework?

And it had a question mark in a bang after just to put the extra oomph on the in there Right and something that might tie into how you think I think is one thing mentioned here was start with humans rather than saying You know which code base or which framework works best for us and start to start with the people that are actually using it And how the teams work together and how they're gonna be using this project long-term and think about that way versus Versus attacking us over the humans and would you agree with that statement? Yeah, for sure I mean, you know, we do we do consulting and yet so we get you know We build apps for lots of different types of groups of people and so we get this question a lot You know, like how can I know which tools I'm supposed to use and I would say the answer is you you can't right? Like how can we predict the future what we can do is pick tools that like leave us some flexibility And I would say that's kind of my my biggest concern with some of these like more all-inclusive frameworks is it's you're kind of all in like in some ways And some people are gonna hate me for this, but in some ways like You know, you're getting really good at angular is I would think it's almost kind of like getting really good at flash in some ways Like you're kind of going all in on that technology and you're learning that technology Almost more than you, you know, are learning the problems that that that thing solves for you I think his name is Chris Gail is with the former vice president of Yammer former vice president of engineering said You know, I'm more interested in people's understanding of problems than solutions And I think that tends to be the case that we tend to want to kind of grab something off the shelf that just kind of solves our problems But that doesn't leave us as prepared when we have to evolve it over time or you know Something else comes along that we're interested in like we're kind of all in and it's hard to switch And then we have this kind of almost religious buy-in to the framework that we've subscribed to and I just don't really think anybody wins in that scenario Like I think we're better off, you know Kind of identifying and understanding the problems of building applications in this way and then being able to pick the tools And then we're in a better spot to evaluate like which solution actually makes sense here And I also like the concept of you know, kind of the small modules thing from NPM and only using what you actually need Which then leaves you the option to replace or what have you yeah, see Because I definitely see the value in modularity and dipping your toe in the water We just had the Microsoft team the TypeScript team on recently I think it was in 152 and you know TypeScript seen some adoption because they decided to go with a strict super set of JavaScript And that allows teams to like dip their toe in the water with TypeScript and it's not a huge Investment right up front to get into it Which sounds like that some of Ampersands power is that you can kind of dip your toe in the water And I see the value in that and definitely as you build in things change That's the only thing that we understand software that things are going to change Yeah, at the same time, I also understand that paradox of choice and that paralysis that happens when you're just getting started And I need to pick you know, 30 different modules that I'm gonna go with and it requires a lot of kind of pre-requisite knowledge Which I really don't like either. That's something that like if you've ever been to any of my workshops or anything It's always something I try to kind of just be like hey Here's a starting point like if you if you do this and you build things in this way And at least you kind of you're accidentally learning the various pieces involved here and the problems that we're solving But yeah, I think we've made it way too hard to be a new web developer like way too hard like it's super frustrating So, you know, and I think I mean if you go read Hacker News and something you're a brand new developer You think you have to build some like crazy isomorphic app or whatever just to start, right?

I'm like you just scaring people off before they even start whereas, you know When I was getting into this stuff like when I first saw jQuery and I'm like well grab I can open a console and you know See some like little elements flying around the page like this is awesome I now feel powerful, right and like I think what we're doing for the most part is scaring people off more than actually Making them feel like they can jump in so what I'm kind of interested in is trying to find that balance We can like you know giving giving a new person a toolkit that they can just start with Without having to like crock everything but still have the resulting app be something That's you know reasonably performant and is well structured to the point where someone else can jump in and help or whatever So I think that's a really hard line to walk, but I think we should keep trying interesting the The point that you get where you're picking a JavaScript framework You've actually already made some decisions, right? And one of those foundational decisions you've made is you're gonna be client-side rendering So which yeah sort of you can you don't necessarily have to do it all like that But I'm generally speaking you've decided to separate out your API You're sure aside from your client side Yeah, which that's a big debate as well, right and yeah, I was interested I read a few pages of your book human JavaScript you have it online for free We'll link that up in the show notes one of the things you say there Which I was a surprise coming from you a job trip advocate is that for many types of applications building a single page At is harder and give you no additional value. I do think there will be a day when that that's no longer the case But we're not there yet. Yeah, I agree I wrote that two years ago.

Okay, so it's not outdated. It's just you know that like you said I do think we're moving towards the time when that's no longer the case I am gonna go and do a second version of the book and when I do it's gonna be talking about Basically recommending that what you do is that you build a kind of static single page apps if you will Where you basically have everything, you know, you kind of get your whole file structure but you can buy it down to a set of static assets and Where you also then pre-render anything ahead of time that you know is gonna exist at a given URL I really like that pattern of having like kind of drawing that line in the same like we're building this static app And I think once you get to that it can start to feel like you know This is a better approach. However, there's still the case where like you know for certain types of apps Like why are you doing a client set up anyway? Like it doesn't really make sense like if you're publishing a new site Like why on earth would you make it client rendered?

Right? I don't I don't understand that, you know to me You're just adding complexity there. It's hard enough to get like, you know, if you're working on BBC.com to like make a Something that's gonna work on every device ever, right? That's a hard enough of a problem to solve and the primary purpose The reason people are coming to your site is to read that content Like don't make that don't make me down a two megabytes of JavaScript to see you know to read your news article, right?

So I think that's where you had to really focus again You focus on the user and all those things kind of tend to sort themselves out a little bit becomes clear What you're what you're aiming to do if the answer is to provide this really rich kind of application like experience behind a login or something Then by all means like right in JavaScript, but if you're just publishing content You're doing a blog or whatever like let's not make the hard things That's not make the things that can be simple any harder than they need to be. Yeah, it reminds me of the post at martin Fowler put out this week monolith first idea of you I did Yeah, and the kind of the synopsis there is that there's a strength towards micro services and there are completely legitimate times where micro Services is the architecture that you want to take on but often times It's not what you want to take on at first because you don't know what you're building or You're just over engineering for something that may never need it lots of reasons and he goes in the details I think we'll definitely put that one weekly. Yeah, that's why you're in the queue for it. Is it great?

Yeah, but like keep it simple, right? And then and then but keep it simple without backing yourself into the corner Right, I think that's kind of what you're advocating there as well Which is don't over engineer if you're probably you're solving doesn't require a client side rich client Then don't start with that just because it's you know what people do right? Yeah, totally. I mean, I think there's again make things as simple as it can be software is inherently like difficult There's like the natural state of any code base is entropy like we don't Again, it's a battle that you have to fight I think is to try to keep things as simple as it can be and if you don't you just gonna put the message and someone else You have to clean it up So generally you kind of ask this question a bit earlier, but I'm not sure if you got a clear enough answer if it was Okay, I'm not just trying to get all the speech of the fire.

Come on. Well after after having this conversation I'm wondering you know what kind of developer doesn't serve then, you know, how would they choose it over? You know things like ember angular reactor really a Put react is that reacting the notes was never a replaced Randall? We have random notes there react is not really a great there.

Drandals also, you know, a really it moved on Anyway, I mean it's not what's not one of the other I mean definitely if you go amber like if you use ember, you're you're not gonna be using an ampersand stuff But personally I've been building much of stuff with ampersand and react and I like it a lot We're just using cutting percent to model some data from API's and what have you and then using the simplicity of the react As if you layer to just kind of rerender at will and it's super easy and it makes things, you know pretty straightforward So I think you know Yeah, I'm not gonna sit here and like tell people to like you should use ampersand But for some people it really it really fits how they go about building things because it lets you kind of I for example I was just in Las Vegas at future insects live and Like I gave up came up on stage and give a talk about like building front ends without frameworks And he starts out with really really basic like he's like you don't need a model You can use these plain JSON objects and then he goes Well, then you need to put them somewhere in that case Maybe like use a collection and he started using he's like oh He started with an percent collection like so now instead of having just an array of objects he had an array of small models that he could Then observe and it's like you know That's kind of the mentality like if you start with the absolute basics first Then you can kind of layer in stuff as you find yourself needing it as opposed to like I'm gonna use ember for this app that You know you may never need you may never use a third of what ember has and has to kind of instantiate for you when you when you spin it up Right, so I think I think it's a toolkit You know if someone said that it's more like a machine shop rather than a hammer like anyone can swing a hammer But if you have a machine shop, you can build really incredible finely tuned things So I think that's a little bit more the Where it fits in how we name some of the actual individualized models Just looking for some links and just you know something Things to use to build so ever since ampersand state for example It's basically an observable object and it doesn't make any assumptions about how you're gonna use it. So Basically, you define a set of properties that this thing is going to store You say what type it is and then it will throw type errors if you try to set a value equal to something else Right, so it's in it's the wrong type and it will fire a change event anytime you change that value Whether you do it through a set or one thing that we do that's kind of unique is like even if you do it via assignments So you say you know model dot property name equals something else you'll still get a change event from that Because we're actually because we're forcing you to register which properties that's going to store we create, you know These these getters and setters to actually do that. So as a result, you know, you end up with this very nice little observable object and then you know Ampersand collection for example is basically It's an observable array So you can store plain JavaScript objects in an empty collection But then if you want to talk to an API with that collection and get that data from an API You can use ampersand rest collection and then you just add a URL and you have a fetch method now So you can call fetch and then you're kind of in backbone style Collections, so you can kind of you see you can kind of just grab what you need One of the reasons I originally started messing around with kind of splitting this stuff out is like I was building this this touch library and What I wanted to do was be able to model touch events And if you've ever done this directly in a browser You have to you basically get you get a touchdown to touch move and touch up right or touch end So if you want to do something that's like based on a hold action There's a ton of stuff that you have to model there you have to know like get started at the spot It hasn't moved more than this distance You have to set a timer when it first comes, you know when you first put the finger down And then at some point you have to notify the code that cares about it that it's now being held right So it's a bit of a complex example perhaps But with something like you can take just an ampersand state object to model each touch And then you just set you know the the properties and then you can have all these derived properties based on You know the values that you set so you can say I have a the classic example being I have a full name That's based on first name and last name right But these things get intelligently fired based on changes So if the end calculated result isn't different, it's not going to fire a change event on the derived property So as a result, you can almost kind of do this functional reactor programming style And have these very concise easy to describe State objects that will let you you know kind of track complex state like that whether it's you know coming from an API or not Right, hopefully that made sense. Yeah, the variable And then view obviously we talked about a little bit earlier.

It's uh, it's not full on react obviously So it's something a bit more so but you could swap it out for react if you wanted to Yeah, yeah, so an interesting view is a bit like it's basically a slightly more powerful backbone view Um, honestly, ourselves We've recently been leaning forward just using react as a view layer instead And that's that's precisely the functionality that we wanted like being able to have the ability to swap things out As as we self-fit so if you like back when views, you'll probably like interesting views If you like react, then you can just use react right Just sitting here wondering just personally what your personal technical background is as far as to cut your teeth on JavaScript or do you have other languages in your back pocket Well, I started uh years ago when I had no idea. I studied business. So I didn't study this stuff at all Um, but I'm as always into computers, but I didn't really like program. Um in my senior year in college I wanted to start a business.

Uh, that was like this web based real estate listing thing And uh, I couldn't afford to hire anybody who was any good to build what I wanted So it's like how hard can this be? So I started just kind of messing around with it. This is like 2005. Um, at the time I had no idea what to pick I found the really great tutorial on Linda calm building up with cold fusion.

So that's what I did Yeah, oh, yeah. Oh, yeah So, but you know, but once you kind of pick up a second a third language like you start to see that they're really all the same I I did Python after that. It was really into Django for a while. Um, I loved like the cleanliness of python Which is something I still kind of miss a little bit in JavaScript.

It's like Python has pep eight. It's like hey The creator said this is how you should write python. Yeah, like it'd be nice to have some of that to some extent You know, right as well. I like that about go to where they actually have a tool that you know go format where you can run it through And just basically reform answer code according to standards.

It's like awesome. Yeah, totally And it's there and argue about this except what I don't like is it puts hard tabs in there And it's like oh no, you know, so like it's all good as long as you agree with my uh with my opinions, right? Recognizing the things that are important I've recently gotten really into using um, I don't know if you guys know frost There's a bunch of crazy webRTC stuff in his big in the node community, but he's he's the guy that did web torrent. Okay F-e-r-o-s-s He also did pere-cdm if you ever saw that but anyway, he he had the audacity to create a node model called standard That is his set of a nice code style for uh for JavaScript.

I just love it I've just started using that like it it didn't match everything that I believe in in terms of like how I was writing code before It was like, I don't care. It's got a built-in form matter I don't have to argue with anybody like you just make it part of your testing. There's no config. There's no arguing Right.

Yeah, no, this isn't the make. No, no. Yes lint rc. No, just in RC.

No, just right. Yes. RC. What's that one?

I don't know. That's just another one. That's the one I think I think jickory is a better call It's actually it's reasonably popular, but yeah, I haven't I haven't used it much That's neat One thing that they do have that's what cool is that you can kind of how it has a pretty powerful formatting stuff So once you define your rules, not only can you say if you validate those rules You can kind of say reformat my code to meet these rules, which is pretty neat You can opt in to certain things when everything well when I'm saying you can go the other way You can have it format your code based on the rules that you give it right So it's like it's not just gonna tell you, you know shame on you. You didn't follow the rules It's gonna also say I'll rewrite your code for you to map to the style that you defined Which is pretty cool.

That is and standard has has a format or not too. So that's what's also good Is there anything in here that just writes the code all together? I wish Working on that's the next step is like you've heard from the application. Yeah, yeah English to JavaScript.

There you go. Hiler. Yeah, we can get the the dragon people You know those people where you talking to the mic and it types for you. Oh, yeah You get them involved.

They'll be excited about that you guys. I never heard a brain brain to JS because that's that's what that is Yeah, just brain. Just get the words. You know the words just for the brain.

Yeah, the brain brain. That's cool brain in JS English is a lossy translation. Yeah, it's my new library. It's coming out nice 2020.

I'll use it While we're learning a bit more about your background Enric, let's uh, let's let's tease real quick when I take a break here from a sponsor But when we come back, we're gonna hear how you once described yourself. So let's let's break. We're back You've heard me talk about top towels several times in this podcast, but today is different I've got a special treat for you I went out and spoke with a listener who a year ago had never heard a top towel He listened to the show just like you're doing right here right now today and heard us talk about top towel what they're all about And he decided to get in touch and now he's living the dream as a freelance software developer with top towel His name is Dean Lowson and I sat down on top of him. I said hey, what is it that you love most about top towel?

Well, for me the thing about top towel, which I thought would be very hard for me personally as I transitioned to a more consulting role Uh was the way I would have accessed a new client and what quality those would be So I found that I had access to awesome clients through top towel and it hasn't been that hard to find because they have a lot of choice And even more than that uh, there's enough choice and I can actually be a little selective about What kinds of things I want to be working on so I use that as a way to sort of hone my skills and you know Go towards the technology that I think are worth investing in for the future So whether it's you know, including you front-end frameworks or doing a little DevOps work on the side I usually I'm able to find clients who are have the needs of the things I want to get better at so that's been that's been Truly useful. All right That was Daniel Lowson a listener of the change vlog and also a freelance software developer with top towel If you want to follow in Daniel's footsteps go to top towel.com slash developers that's top TAL.com slash developers to learn more about what top towels all about and tell them the change vlogs ditch All right, we're back so Henrik you once described yourself as not a good JavaScript developer And that's on your about page on the and yet website So it's it's in black and why you can't run away from it. What what made you say that? Why did you say that because you seemed pretty good to me?

Well, I mean, how do we really objectively know anyway, right? I mean, honestly, he just put it on your about page is like I do No, I mean, so what happened was uh, that's I said that to Adam here and yet shortly after I started I hadn't written that much JavaScript and uh, you know, I just kind of I don't know I've been told I have a self deprecating personality anyway, so maybe it was just a little bit of that I don't know But but you no longer call yourself this of course You know, I've kind of come to terms with the fact that I'm okay a JavaScript. There you go So at what point did you start getting deeper into JavaScript? How many years has it been since you came from confusion went to Python and then now you're where you're at now?

I've basically been writing JavaScript exclusively almost for the last five years and the uh, when I first joined in yet We had this really cool project that actually where um, we were doing this rather intense asset tracking application They had these really cool little devices that they would set up like a terrestrial network and then um, they would Be able to track like what's super high precision within a small area Where everything was and they they needed a web app to do this And so we actually wrote like a whole job system that would process that tons of that incoming data And then we displayed all this stuff in a browser on a live map So it'd be the kind of thing where like you could even have someone have a sensor in a briefcase and it'd go up the elevators And we would do things like switch out the the floor map based on the barometric pressure on these sensors, right? It was it was quite an involved app and it was very advanced as far as web apps go for it for its time And uh, it was right around the time when like we wrote a version of it and then back when it came out We were in the process of basically writing our own backbone back then because we knew we needed it And then when that came out is like backbone 3 or something I'm like, nope, we're using this and I just like rewrote the whole app using that uh, and that was you know, I don't know four or five years ago now, but um, yeah, I don't know Just been doing lots of it since then for version sake right now the latest production version of backbone is 1.2.1. Just All update So is that an app still in production? Uh, yeah, actually it is uh, it's it was for a kind of a very sort of private group, so it's not like Um, it's not like something you can really go look at I don't think sure which is nice to be able to write software That's still valuable, you know, four or five years later.

Yeah, for sure Aside from the browser changing and standard changing I guess within the browser Um, you know older JavaScript apps don't have much of a problem because they can be served from pretty much anywhere The client side, right? So you pretty much deal with the evolution of JavaScript and the ever changing landscape of the web Right. Yeah, and at the time it was it was really unique to have something that was getting that much data pushed to it from the server You know through these real-time connections that we had You know, we were early users of socket.io and we were using before then it was even kind of these long polling systems using Bosch XPP to do this stuff in the browser, uh, which was, you know, so I was writing like XPP plugins and stuff five years ago Which is interesting so let's hold off on web RTC because I'd like to talk about that later just as a standalone topic But aside from that, um, you know, how was the web evolved? Maybe from from the time that you started even when you were not so good at a developer to now And then what are some technologies that are either here or are you know on the fringe of coming up that are exciting for you?

Well, I think how it's evolved is it's just gotten complicated No, it's not I think it's that evolution In some ways I think so, yeah But I but I think that we are starting to see a shift there and I think you know things like I mean, I think react is one of the few like that stands out is like an actual simplifying technology That's appeared in the last few years. I actually make lives better for developers Um simply because you don't necessarily have to do individual bindings. You can just be like hey rerender whenever you want That's extremely valuable from a complexity standpoint. You don't have to keep all that stuff in your head in the same way Um, of course it has its own set of challenges, but I think that's that's been one of these like huge things that have changed for the better Um, I totally forgot the second part of your question just a upcoming technology web technology Whatever is getting excited and yeah, you know, so I'm writing a bunch of yesx now using babble to ask as a kind of a transpiler Um, I think once you get to the point where you have a build step in your application Which I would go as far as to say that you know, we should all be doing that these days the tools have come far enough to where There's no reason not to once you have a build step, you know It's a pretty inconsequential thing to just also sneak in a little transpiler in there as well.

Um, so you know I've been writing yesx exclusively now for the last little bit here and I think Being able to do that it just kind of eliminates a little bit of boilerplate and stuff that we had to do before so I think that's a nice change is that we're seeing Um, again, like I said before, I'm huge on like this whole concept of Going back to making your entire client side out completely a static set of files I think that's I think we just see a lot more of that I see a lot more people doing that dramatically simplifying operations and stuff as a result Because you're back to like transferring files like they uh, one of the developers from Shutterfly was in one of my workshops And they um, they went change a bunch of stuff They built a bunch of stuff at the end of the end and uh, they compile it all down to aesthetic assets And he's like, yeah, our deployment tool is now our sink, right? Which is like, you know, and I in talking to folks from uh, Flipkart, which is one of the largest e-commerce sites in India They actually they have a unique situation there, but they basically do the same thing, right? They they compile everything down to a set of static assets and then they use web views inside android apps to do the stuff But still like they handled their scaling issues by making their clients do more stuff Wow, they had a rather dramatic server issue on a very big day for them before and then this is how they fixed it So then we're passing more stuff off the client I think we're going to see a lot more people doing that as clients become increasingly better runtimes Yeah, uh related and maybe perhaps a little bit of a tease for next week's show Will we talk in hdb2 with ilia gregorek? Oh, he's awesome Yeah, we had him on earlier this year talking about github archive and we're excited to have him back to talk about The update to his book, um, with now that hdb2 has been finalized and stuff in That's really gonna flip the script on a few things with regard to best practices and serving static assets because Um, things that we once were like, you know, can and truth are no longer true anymore Such as you know the requirement to concatenate your css all into a single file is actually an anti-practice When it comes to hdb2 so I think things are changing but they're also going to get easier because not even have to have that build stat Necessarily to have the performance games sort of but I would still say that you know, most of these people that are building these types of applications They're you know, it's not just a matter of you know, five or ten files for talking a couple hundred files And uh, you know, I don't know if doing those even if you kind of pipeline them the way that you can with hdb2 I'm not I'm not entirely sure it obviates the need for build step Um, so it'll be kind of interesting to see what happens and that logic has to kind of happen somewhere Right your server has to be smart enough to know what to send for what right?

Um, and so I'm I don't know. I haven't seen a ton of of like really great open source Answers to these questions yet. It's quite possible that I haven't seen them, but um, but yeah I don't know it'll be it'll be really interesting to see what what happens Yeah, I mean you're right and the fact that hdb2 is is opt in so you're still gonna have many many clients for many years I can't speak that language and you're gonna have to provide an optimal experience for them as well Um, I'm pretty sure that and we'll find it nice to be cool. We'll ask him this very pointedly But I'm pretty sure that um even with many small files, it's actually faster not to concatenate Right, but you're still gonna want to minify him.

Yeah, we're not. Yeah Right, right. All right, the weight you don't want to send some away But sure but yeah, I agree I mean just imagine changing a little bit. That's all exactly Yeah, and I think it's gonna be really interesting to see how the kind of the tooling steps up to match that I'm quite curious to see how that plays out to you because I I mean I think performance is one of those things that you know We have to care about on the web.

Um, and uh, we've seen lacking kind of in some of these larger frameworks Just kind of a little bit too heavy. So seeing seeing kind of the technology is going to catch up to enable these kinds of things is interesting Yeah, we'll see for sure the The other thing around performance is you know, we've had a move recently uh thinking specifically of facebook's what's it called instant news? Yeah, instant articles or whatever. Yeah instant articles where they're basically declaring which is interesting But they're declaring that you know, the web isn't fast enough You know, we need to be able to catch these news articles so that we engage people faster because people want their information right now Or they're gonna move on um, and so specifically around content based sites right news sites, right?

Um There's conversation around is it the web technologies and the DOM that's just never gonna be good enough or is it you know The tools or is it the developers or is it the businesses you have a take on that? Well, I think in their case, it's it's fairly straightforward I mean fetching and and uh cashing content ahead of time is going to be dramatically faster And even though they're not saying it I would venture to say one of the big reasons They're doing it is they want to control the experience of those sites as well the experience of that content Um, you know, a lot of people put so much clutter and ads and stuff in this content sites like you get these like links to buzzfeed or what have you? And it's just a bunch of yet to sit there and wait for so many Unrelated things to load before you ever get to see what you're trying to see that I would venture to say that's at least in part what they're addressing as well Yeah, uh, it's not that if they knew that all these sites were super well optimized and you know, we serve content first Like I don't I don't think we'd be sitting here having this conversation honestly It's not a big concern though for um for those who care about like data plans and stuff like that They're like fetching data that they don't actually want to you're sort of prefetching assuming you're you're gonna want this content And you're sort of like not want it and you're burning through your bandwidth Yeah, I mean arguably right that's a good point Um, but obviously that's a choice that they made and I mean I think I think a lot of people are experiencing content through the built-in browsers on Facebook these days And I would venture to say that you know by grabbing content directly from the publishers That the way that they are they're probably minimizing the total amount of size, you know file coming through maybe but um, but I don't know Yeah, it's hard to say I guess if you're in that Facebook wall world, you know, you're in the app you're not you know It's facebook it's not a facebook conversation here But just hi little ran I guess sure you know If you're clicking a link from within facebook is their anticipation that you're gonna want whatever you've clicked And then so they can sort of go to that site and prefetch a lot of data that they need to speed it up Is that what this instant page thing is there or instant article? Like so when you click through the link, it's they're faster than No, it's actually like a capturing so facebook So imagine your times as an article facebook's gonna go grab grab that cash it and serve their version of that article to everybody Um And so it's just not any new york times ever at all anymore Yeah, they've worked directly with publishers from what I understand to kind of get access and uh, right So it's not gonna be for every link you click right for Specific publishers right and I'm sure there's deals around making sure they still have analytics and that kind of stuff But um because those aren't those businesses aren't just foolish.

I'm sure they're pretty skeptical going into it still but anyways Yeah, a little bit earlier is getting more complicated So I think I think the web is I mean I think it's important to note that the web is getting to be you know Simply putting your content out there. You don't know how it's going to be used I mean with more and more Devices hitting the internet that are not just you know big desktop screens people are extracting content from stuff all over the place And I think you know kind of coming up with ways to serve the content and it's raw form in a way that still makes sense It's gonna be a bigger deal and you know we we're seeing a lot more APIs and stuff But to some degree there's people getting really stingy about access to those API too, so yeah, we shall see More traffic right remember that the days of pop-ups and pop-up blockers I mean pop-up ads were the worst right and then browser vendors just solved it They're just like yeah, you can't do that anymore and nowadays, you know We have these like full-page modal things that are like it's a content overlay. It's not a pop-up It's just like the entire page to take over by some ridiculously off off topic ad before we can get to the content So it's a struggle because publishers need to make money, you know put the content out what we want But they're not really serving us so it's just a mess yeah for sure So but I think at the most part the people that are building like JavaScript applications These are not necessarily the problems we're solving you know a lot of times the apps that we're building are things They're more control panel type interfaces like I think the whole content conversation Is a bit different than at least most people that are using these frameworks and tools that we're talking about here are not building those types of sites But and I think that and I think it's perfectly okay to say that there is a different type of application on the web I mean I think people get a little riled up about saying that there's you know any sort of difference between a web app and a website right like that'll debate Which is super worn and tired but you know from my perspective, it's a fairly clean distinction You know depending on what type of experience you're trying to provide to the user Yeah, just to go back again to something that you wrote in your book He says building client's apps is often more complicated than server-side internet decide carefully ask yourself Is there additional benefit for your users? Are you building something that is open and close frequently or are you building an experience?

How often does the data in the application change? Do you care if it changes while the app is open? So I think that speaks well into what you're saying a lot of these a lot of applications that are served very well by client-side frameworks Are dashboards and data rich things that need to be updating live whether it's pulled or pushed And the content sites that we're complaining about like they actually kind of have it easier They have the simpler side, right? They just need to serve the content and most of the time it's actually you know business constraints that are That are causing it to make it hard and annoying on purpose Yeah To be a developer Content sites that you might end up putting something like back like I can recall back if you're a chair to when we were doing some different things Um, you know, we we were doing service on rendering through a Ruby app But we were also building back but on top of it to provide a better church or experience for some of the data there So you sort of still do sometimes have that that cross over there when it does not Yeah, for sure.

And that's where it's nice to be able to grab little pieces that you need to Yeah, that's another little pitch there for 8% right like yeah And that's how we see people use it. I know people at financial times that have used it for a little like, you know, interactive Visualizations and stuff right like that are kind of add-ons to otherwise static sites and what have you so Um, you know, I think yeah, it definitely it can be used in that tool set for sure Um, but yeah, I think a lot of times people are you know, most people that do this stuff day to day are Being asked to build, you know, these control dashboards and these data input systems and stuff, right? Exactly Well, I think uh, I'll go switch gears to webRTC Okay, sounds good. Maybe let's uh, let's take a sponsor now.

We'll take a break here from a sponsor and we'll get back Uh, we'll talk about webRTC and simple webRTC. We'll get back Dreamhost now has managed vps hosting built for speed and scalability including solid state drives and that's awesome These vps are built for open source developers and now include one click installs of nojs custom ruby and rvm support Speed speed and more speed is what it's all about their vps servers use ssd hard drives and our 20% faster than traditional SATA drives All virtual private servers from dreamhost include ssd storage of boom to 1204 lts web-based control panel scalable RAM Which is super awesome. You can go from one giga brand and easily scaled to eight gigs if you need it Nojs won't we can stall ruby version manager unlimited bandwidth unlimited hosted domains unlimited 24 seven support Go check them out and learn more at dreamhost.com slash the changelog All right, everybody. We are back.

We are talking with henryk your tag about all things javascript and web and the cool stuff They're doing over at and yet, uh, ampersand.js and another project you mentioned before the break which is simple webRTC henryk Can you tell us first of all what's webRTC? Why is it cool? And then how does your guys open source a tool play into it? Sure.

So webRTC is essentially a low latency peer-to-peer networking in the browser So, uh, you know, web sockets is server to browser. Uh, web, webRTC is browser to browser Um, so you're actually negotiating a direct connection between two browsers and then at the point where you have that connection there There's no server anymore. Um, so, you know, you can do things like voice and video streaming So you can build voice and video communications applications or you can use the webRTC data channel to then send, you know Whatever sort of data you want. So you can do things like file transfer what have you But I mean, essentially the way that that works is you still need some sort of discovery mechanism To let these two browsers find each other Um, so they're typically which is why people kind of get confused about this because you need a server somewhere to kind of negotiate And send these signaling messages back and forth so that these two browsers can find each other Um, the cool thing about how that technology works.

However is, you know, if it kind of attempts to discover where you are And so if you if you have two users on the same network, uh, in theory at least it should be able to discover that they are in the same network So when you do the data transfer, uh, those bits never leave the building Um, so it's it's a pretty cool technology I mean it really enables a different set of applications to be built on the internet So all of a sudden doing Skype in the browser is a viable thing Um, etc, so that's kind of I don't know. That's probably good of an overall summary as I can I can do awesome Yeah, it looks like it has kind of unfortunately spotty browser support Uh latest crumbs and firefox and opera all seem to support it as well as chrome for android But ie safari mobile safari and opera mini are all reds on that. Can I use charts? Yep, so what we're doing I mean, so well, first of all, that's changing as far as I use concerned What what happened is, um, you know, google basically they created the over tc standard for all practical purposes I mean, there's other people involved don't get me wrong, but like they're they're kind of the ones that kind of pushed it along early on Um, actually, that's not entirely accurate.

Uh, most of it was pretty heavily involved from the beginning too So scratch that from the record. Um, but the point is like, you know, they just kind of pushed it and shipped it right like they got it out there and uh It's great for small conversations. Um, if you wanted to like any sort of the mesh network where every user is connected to everybody else It's fine. Uh, but for the what they realized is like in order to even build something like google hangouts using web rtc Once you get up to, you know, I would say more than four or five people It stops making sense to have a total mesh network because now you have to upload your video stream to every single other person that you're talking to And pretty soon your bandwidth and your local just your computer just starts melting down just because it's working so hard, right?

Like it's got to encode and decode all this video about it. It just it gets really crazy, right? Um, so if you're gonna do any sort of larger conference scenario or Any kind of broadcast scenario where you have one person sending to a larger audience where it's only going one direction, you know, the the kind of the Peer connection objects objects that were added to, you know, Chrome's uh, API They kind of don't do that. Well, they don't handle that case yet.

Well, so Microsoft they wanted to implement web rtc But they're like these are these problems that we have in order to be able to build these kinds of applications And uh, so they kind of came forward with an alternate spec, which you know, you might make you roll your eyes at first But they actually had really good reason to and uh, so everybody's gonna kind of jump over to that spec And it's called ortc and that enables a lot more fine-grained control over the various pieces So instead of having this like one Serves everything pure connection object you get all kinds of these more Fine-grained control over you can do, you know, interesting network topologies to make more efficient use of the bandwidth that you do have and what have you The server still required though, right? Yeah, just for this. Uh, no, so just for discovery, right? So you can actually do uh, once you have a connection with somebody, you can actually drop the server entirely So as apple showed any interest in the rtc or they're gonna be I would say they're not gonna do it till anyone makes them And you know, because because let me think about it, right?

Like what incentive do they have? I don't know because they have FaceTime. They want you to use FaceTime. They have Microsoft has Skype They want you to use Skype and they want to build it in the browser, so They're and they're being more progressive in my opinion now.

I think that's it with that stuff So the the IIT team has committed to doing this so they will be doing it In fact some folks on our team are working with them to make sure that that simple over to see abstracts the differences So even when you know when they do show up and you know as long as you're using simple over to see all of a sudden You just get IE support as well Whether that's you know or to see on one end what we're seeing on the other the idea is that You know, we're gonna try to abstract all that stuff out So this this would be a unique question here for this simple web rtc Support both web rtc and the ortc that this all it will it will it will it will it will yeah We have to change the names Jerry. We've talked about that before We talked about that with uh, Daniel stamberg as a matter of fact Uh lub curl and curl had several names in its history so as it evolved and supportive and things We're not gonna change the name as well. I think he was like he originally called it and started doing posts and stuff He's like, oh, no, let's put get those posts and I'm just getting it wasn't yeah, but he changed the news over times I think I think it's still gonna be we're still gonna refer to the technology as a whole as web rtc Um, I don't think you know, I think that had enough traction I mean, there's there's entire like web rtc expos there. They're not gonna rename them.

Oh, rtc expo I think people will keep referring to the technology as web rtc Yeah, we're gonna keep calling the library simple web rtc Um, but it would just support both basically so my guess is web rtc was pretty complicated if it required a simplification library like your own Um, yeah, I mean, it's just you know when I was doing it. Um, I hadn't seen anybody do multi-user Web rtc. Um, I'd only seen people do, you know, kind of pre-peer to peer with a single connection So all I really did was kind of abstract that out into, you know, where you could have multiple connections Um, and yeah, it used to be really messy because it was really poorly and inconsistently implemented Uh, especially getting calls to work between firefox and chrome when I first got that to work I was like, I don't know it was kind of it was a celebratory moment, right? Like there was a bunch of stuff that was different between the two implementations and then they were really moving targets as well because it kept changing You know, since then, uh, the library is now maintained by uh, philiphenky and lanced out on our team I really haven't done much with it in the last, I don't know, a year or so But they've been able to as browsers have gotten better They've just gotten deleted big sections of code that are no longer needed because so much fun, right?

Yeah, so um Yeah, it was messy, but uh, it wasn't it wasn't too bad I was kind of surprised that no one else had done it at least that I was aware of at the time when I released it So are there any cool projects out there built on simple web rtc that you've heard of? Um, yeah, there's, you know, the co-chair sites, uh, I forget the name of what I'm trying to think of Where you can basically kind of do live coding together, uh, kind of pairing over the web There's go stuff like that Um, a bunch of people have come up and told me they built stuff with it Uh, there was one cool example, uh, was a student at Portland State University who hooked it up to, um, an electron microscope An electron scanning microscope and use that to share their microscope with other universities Um, so they did because you can support support multiple videos Um, you know, one of the videos would be the actual results coming out of the microscope And then the other would be that, you know, the person they're operating it So they could kind of work on stuff together with a single microscope, uh, different parts of the country or what have you Um, so it's really cool stuff that people have kind of hacked together But I mean, the thing that it does is like It makes the basic part so simple that you don't really have to know much about what web rtc does or how it works to use it Um, in the same way that socket.io abstracted web sockets when it was really poorly implemented I mean, it's the same idea here. It's like You know, it just irons out the differences and gives you a dead simple API Uh, as soon as you try to kind of break from that, it's not going to do everything you want it to Um, but simple over to itself, you know, given kind of our Approach of building things as modular as we can It's also comprised of a bunch of little web rtc modules So if you go to github.com slash o-talk There's all these little libraries that that simple rtc just requires and uses that are due various portions of this Um, we recently just gave the web rtc name back to the google focus on npm because we had one, you know, a portion of it was just that Right, but how much they pay you? Oh, nothing At least on the air nothing So o-talk is an orangut hub.

What's what is this? This is different? Um, yeah, so the idea is like so We built an app called talky. Uh, talky.

I also this is and yet. Okay. This is all and yet stuff So what we did is um, so talky. I was it started out as my demo page for simple web rtc Uh, I was just trying to get this thing to work with multi-user video And then so the way that it works is you go to talky.io slash, you know, insert anything here And as long as someone else is at that same URL at the same time, they're in the same conversation Like you don't have to download anything.

You don't have to sign up. You don't have to register. You don't have to be logged in It's completely anonymous. Um, you know, it's encrypted peer-to-peer So it's like conceptually it's so much easier than setting something like google hangouts up, right?

Like a lot of people, you know, futz around with invitations and all this stuff, right? So, you know, meet me at this URL at this time is something that people found really useful And so, you know, we've seen hundreds of thousands of people start using this thing and it's like It's been kind of mind-blowing. Um, what's the performance like on it? Oh, it's it's quite good Because I mean once again, if you're doing this in smaller groups You can get really nice high quality video.

Um, and we said anything north and four before was what you started getting danger down? Yeah, it starts to get bad. So then what we've done is um, we've done a second version of this that actually uses a video bridge technology And it's called a selective forwarding unit, but the idea is that it doesn't it doesn't necessarily, you know, encode and decode video in the middle But what it does is it can kind of it can kind of uh, combine things onto the same peer connection so that you can do larger groups So we've we've had you know successful calls with like 20 people Um using our beta version, which is that beta.taki.io Um, and that's what we're doing actually in the middle of a Kickstarter for that right now Trying to get some more funding to basically add like recording capabilities and some other fun stuff to that Um, so definitely, you know, go check that out if you're interested in kind of open communication on the web So the other piece there is that all the pieces that we're using to build taki are all individually open sourced And that's all the stuff that they're in the otak libraries. Okay.

Um, so About the ask is what part of taki is is open source or if any? Yeah, yeah, so I mean the version that's live right now at taki.io is using simple where we're to see Um, the next version the one that beta that taki.io is using all these various uh libraries that are there And the other cool thing about that is that it can interoperate so it uses uh It's a standard called xnpp for messaging underneath Which means that you can actually build an alternate service that That will do that you can actually call somebody at you know, like a taki service Like you can call from one system to another system, which, you know It would be kind of like being able to call from skype to google hangouts, right? So we need to see I think that kind of open federated communication on the web These are things we've come to expect from phones for years. Yeah, the fact that I want to hey Are you I'm gonna call you are you on Verizon or AT&T?

You know, like that that conversation doesn't happen because they federate Uh, but we're that's exactly what we're doing on the web right now. So we want to kind of see that go away interesting Well, we like to close the the uh, the call with some insightful deep impactful questions and uh, so deep so deep And the first question is who are you can have one or many your programming heroes or one hero of many heroes I have I have a few I think it's hard to pick just one honestly um I don't know. I've always been a fan of Lauren, uh, Richard who uh who did like to be and stuff He's a designer slash developer and just like ships cool stuff like entirely on his own Is a bit of a unicorn in that way Uh, you know, I just am blown away that somebody can do that at such a high level. Um, she's certainly not a JavaScript guy But uh, that's always been like really impressive to me.

Uh, you know, people like like tj hallway tech who can just like The amount of volume of of high quality code that he's generated is just mind-blowing to me Um, I would list people like for us who I mentioned earlier, uh, doing some really amazing stuff really pushing the web forward Um, and you know, it looks like you're around to create a stock at ao But like he's also done a bunch of awesome stuff since then. Um, anyway, there's a few to start We'll get the those links in the show notes. We always like link up the heroes when we can sometimes just a Wikipedia page and pass it Yeah, so some heroes are from like, you know, the 1800s or early 1900s Go back in the day the days of the work to some, you know, to somebody who inspired the web, you know, you know, with a quote Like, uh, jfk or something like that. It's nice.

You know what I'm saying? We had jfk as a hero I did you're right. You're pulling in a bunch of records. Oh, man.

That's just drop them in there. You don't even know It's like four or five of us. I didn't even recognize so I didn't expect you to do research like this. I'm caught off guard We're gonna have a commentary track on this.

Yeah That would be cool We uh, we appreciate our guests when they come on the show. So so we have to we have to do that very research So since you're such an edger a bleeding edger You've got to be looking at some very unique Technologies and or projects. So when you have a free weekend or you know, and yet isn't making you work on week I'm sure they probably don't but if you do Uh, if you have a free weekend and you can choose whatever What project or what repo or what thing out there sitting out there for you like waiting to go play with it That you uh, it's open source you haven't done yet. I keep meaning to get around to playing with react native a little bit Um, just because it's kind of it's kind of a cool idea Um, I got thrown a mention to for surge to a surge status.

I just freaking love those guys They've they've done some uh, they've made this like dead simple deployment platform for uh, just deploying static sites Uh, and I just I just love that too. I've been using that for all kinds of little pet projects and stuff. Um, I just take line zero bs Yeah, exactly. It's from uh, so brock wit and he's one of the people behind that he kind of helped do the whole phone gap thing Um, so anyway, they definitely cool group of people there.

Um, let's see I don't know like I think it's really interesting to use like I want to see people do more like physics based stuff in the dom Uh to get sort of these more interesting Drag things around, you know gravity and those kinds of effects used inside web applications So, um, I've seen people use things like d3 as kind of the math engine and in rendering things with react uh, and kind of using that to I don't know to get some really interesting effects, uh, in terms of interaction effects Uh, I don't know. There's a few things Cool. Do you want to take a closing question and then you have to uh, ran work? Oh, man.

I'm already here on surge.sh. It's just Probably just deployed something right? I may have I don't even know this looks pretty awesome. That's kind of cool.

I really like it Um, and I also I mean that's something I referenced as a trainer Like that's been really nice to have something like that because one of the first things I do in my workshops and stuff It's like I have people deploy stuff because you know for so long I think there's been this kind of barrier like oh, I'm working on this thing and then how do I actually get this live? Oh, you call your ops person and you're like, I don't have an ops person. Okay, uh, hosting Yeah, exactly. So it's like it's kind of nice to uh, to be like, hey, just get this out of the way And so I made a little plug here too I have I have like a set of videos that basically show people how to build apps using ampersand react and I use surge for that too So, um, that stuff is that learn that human JavaScript calm So there's some of that stuff in there too and a good hour of that is completely free So you can kind of put ground there and see see what you think and at least get your hands on the stuff Good deal.

So what Henry gets deaf. We've been uh, awesome to have you only call today I know that uh, you span so many chasms we Be in the pre-college area now we're planning for this call as you can tell we do plan Um, we were thinking can we get all one conversation should we have you back for another, you know? I said you last thing it's kind of annoying Simplify man. You got to simplify.

Yeah, I keep preaching that and I need to do it my own life And you're can you read that you know it off fans? You're uh, what you say about that? Wait. Oh, they uh Yeah, oh shoot.

I don't read it. If you don't yeah, why don't you read it? If you haven't right so to maximize implicit This is only ampersand gs dot com website So if you don't actively fight for simplicity software complexity will win and it will suck Exactly. So that that was done earlier.

No, maybe it was like or probably it will it will it will it will So We're always bucking things up around here now. We try we try you know, it's it's hard It's something you really do have to resist the urge to over-engineer anything down It's something I struggle with so Well to listeners. Thank you for listening to henry. Thank you so much for taking some time to join us today to talk about everything You're interested in and thank you for having me.

I really appreciate it. It's pleasure It's been a pleasure to have you also. Thanks to our three awesome sponsors to the show co-chip pop tile and dream host dream host has new vps Option they have was talking about so check out out a few uh, if you don't mind dreamhost.com slash change log is you ready to go to And with that fellas. Let's say goodbye.

See you. All right. See you buddy

PodQuesting Dwight J Randolph- WolfShield Media PodQuesting: -By WolfShield Media and Dwight J RandolphJoin us on an exciting journey to master the world of fiction podcasting! At PodQuesting, we document our quest to improve and innovate, sharing valuable insights, strategies, and behind-the-scenes tips along the way. Whether you're an experienced podcaster or just starting your first show, our podcast is your go-to resource for everything podcasting.Discover practical advice, creative techniques, and lessons from our own experiences as we explore the ever-evolving podcasting landscape. Ready to level up your skills and embark on this adventure with us? Tune in and join the quest!Have questions or feedback? Reach out to us at [email protected] and visit our website:WolfShield.Media The PFN Cincinnati Bengals Podcast Pro Football Network The PFN Cincinnati Bengals Podcast is where you can stay up-to-date with the latest news and analysis on the Cincinnati Bengals! Our hosts, industry experts Jay Morrison and Dallas Robinson, provide weekly coverage of all the latest rumors and updates about the Bengals. Don’t forget to follow the show to receive new episodes directly in your podcast feed and leave a rating and review to let us know your thoughts. The 48 Laws of Power by Robert Greene (Full Audiobook) Robert Greene Amoral, cunning, ruthless, and instructive, this multi-million-copy New York Times bestseller is the definitive manual for anyone interested in gaining, observing, or defending against ultimate control – from the author of The Laws of Human Nature.In the book that People magazine proclaimed “beguiling” and “fascinating,” Robert Greene and Joost Elffers have distilled three thousand years of the history of power into 48 essential laws by drawing from the philosophies of Machiavelli, Sun Tzu, and Carl Von Clausewitz and also from the lives of figures ranging from Henry Kissinger to P.T. Barnum.Some laws teach the need for prudence (“Law 1: Never Outshine the Master”), others teach the value of confidence (“Law 28: Enter Action with Boldness”), and many recommend absolute self-preservation (“Law 15: Crush Your Enemy Totally”). Every law, though, has one thing in common: an interest in t Mind Force Radio.com Mind Force Radio.com Natural Strength Night is an informative, humorous, sometimes a little raucous, good-time of myth busting and honest training information from the trenches. We strive to help everyone involved with old school strength training (without steroids) to not make some common training mistakes. Along with great information, you'll hear a fair share of steroid bashing, flamingo sightings, breaking goons, iron game history, and honest drug-free training information from various leaders and strength coaches in the field to help you get real results! If your primary training information comes from reading "Muscle & Fiction" magazine we'll help get you straightened out. If you love high-intensity strength training, dinosaur style training and just like lifting heavy weights ... or loved Jack Lalanne, Sandow, Grimek, Peary Rader's Iron Man magazine, Brad Steiner's articles, Stuart McRobert's Hardgainer, Iron Nation, Osmo Kiiha's The Iron Master, you will love the show.On The Rugged Individual, we

Frequently Asked Questions

How long is this episode of Changelog Master Feed?

This episode is 1 hour and 15 minutes long.

When was this Changelog Master Feed episode published?

This episode was published on June 13, 2015.

What is this episode about?

Henrik Joreteg joined the show to talk about Single Page Apps (SPAs), Ampersand.js, WebRTC, JavaScript coding styles, and more.

Can I download this Changelog Master Feed episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!