Charles: Hey everybody and welcome to episode 106 of Adventurous Angular Show. This week on our panel we have Jules Kramer.
Jules: Hey there!
Charles: Lukas Ruebbelke .
Lucas: Hey there!
Charles: Ward Bell.
Ward: Hello, hello.
Charles: I’m Charles Max wood from devchat.tv and this week we’re going to be talking about the Release Candidate that was released today as we record, that’s Release Candidate 5. Where do we start with what’s new here?
Jules: I think the biggest thing that’s new in RC5 is well hand it over to Ward and he can get a great overview of NgModule.
Ward: NG Modules is pretty big. Before I even get there, I’m going to go back to you and say what should people think about RC5 aside from the fact that it’s just a major departure from RC4. As our listeners know, our listeners have been very faithful they’ve been going from Beta to RC and they go through the RCs and they’ve had to endure some remarkable changes and this one is really remarkable. Are we done with those?
Charles: I really want to start the rumor that this is nearly final but I don’t know if that’s true.
Jules: First of all, remember I’m a Google employee and we never talk about release dates but here’s what I’ll say to think about. One of the things that I’ve learned in the year being with the Angular team after spending most of my career working on non-open source productivity platforms is that Release Candidacy to me, meant something else. I’ve really struggled a little bit with the naming of Release Candidacy and why do we have 17 Release Candidates? Release Candidates supposed to be one maybe two and that’s the final thing. There shouldn’t be a lot of breaking changes.
That was my expectation when I got to this point on the Angular team of what Release Candidacy meant. But what I’ve learned is that in the open source world and maybe even particularly to the fact that this is a Google produced product in an open source world, is that Release Candidacy was really our first opportunity to get feedback outside of our sort of what I’m going to call the inner circle.
What I mean by that is during alpha and during beta, we’ve got a select set of Google developer experts like Lucas and Ward, we’ve got some partners that we work with like Ionic and Meteor. Throughout all of these cycles, we we’re getting feedback from those groups. The Release Candidacy was our first time to really say to the millions of Angular developers out there and enterprise companies and other partners that we don’t talk to every day like, “Hey, here’s what we’re thinking.” It was also the first time that we got to have a lot of feedback outside of that core team. Being able to see where maybe we weren’t on the right page and I think that the NG Modules is a great example of that but there’s of course other glaring examples so that’s why we have—what are we calling it now? The new, new router?
Ward: Pretty soon it’ll just be the router and everybody will forget that there ever was a past.
Jules: I think for a lot of people what I read on Twitter and what I’ve had people come and tell me is they were expecting stability and new rule breaking changes because we said it with a Release Candidate. I think in our brains, and what’s come around to my brain is that Release Candidacy was really a time to see what we didn’t consider outside of Google.
I also here this meme all the time like, “Oh, Angular’s built for Google so it’s built for Google.” I think I said this on podcast before as if that’s a bad thing. It’s a great thing because Angular is used by such a wide variety of customers within Google. Everything from people doing websites to we have lots of business apps internally the run our business just like every other business on the planet. While we got all of the insights from that type of development, we weren’t getting insights from people who don’t have the unique infrastructure and development tooling and all of those things outside of Google and so his was our time to really fix that. I think Angie Module is a great example like I said router.
What does Release Candidacy mean? I think the way that I’m going to address this question without getting fired is to direct you to the Angular weekly meeting notes and the short link for that is g.co/ng/weekly-notes because we really put into those notes where we think we are. If you read those notes, you’ll see that from now until we release RC6, we’re planning no more breaking changes. If you read those notes, you’ll also see that we differentiated between router forms and IETNN between Encore. The reason for that differentiation is that what we didn’t want to do with let’s say, “Oh, we’re going to code freeze so we can have a stabilization period,” to things like router forms and IETNN which are kind of separate but part of Angular as its framework.
We want Kara, and Victor and Vicky to be able to add new features and not be in a code freeze but we also want to make sure that core is stable before we release RC6.
RC6’s main goal is to take all the deprecated APIs out so we can see if there’s any big problem from doing that or sort of force the world down the path of not using what we’re deprecating. When I think if you look at those notes, you’ll see that RC6 is a big hint.
Ward: It’s a big hint. I can get fired but I don’t care because I’m not an employee. Here’s my take based on reading those and stuff like that. RC5 is pretty darn near what you’re going to see. Chuck if you wanted to tell the world that RC5 is pretty much what the final release is, I feel you’d be right on track with that.
Charles: I can start my rumor.
Ward: You can start your rumor.
Charles: I’ll start with about 12,000
Ward: We want this to be it. Software always needs to have bugs fixes and things like that so we’re trying to fix some bugs. The API, the core API, what you see is now in RC5 is what you’re going to get. We had to stomp our heads and say how stupid can we be. Now it’s just a question of how to get it to you and how to give you time to get where you want to be. We’ve got lots of deprecated stuff, we’re not going to release Angular with deprecated stuff in it. We’re going to yank that out.
Anybody who has an existing app, if you do go on RC5 today you’re going to be fine but come the next RC, when that deprecated stuff disappears, you either catch up or you’re broken. That’s your head’s up, that’s your two by four of the head to get with it. That’s also our chance to see—we can do something horrible by yanking the deprecated stuff out. We don’t think we will but that’s it and then there’s the grace period the way I see it. There’s a grace period for you to get the rest of the and for us to make sure that we haven’t made any other debts within the time when we pulled the deprecated stuff to the time we met the gold standard.
Jules: Let me also just add in there for the listeners, I don’t know how fast this podcast is going out this time but like I said, we’ve done a lot of internal testing. We feel that with RC5 release we’ve had enough use cases that are external to Google that we found all of the big things. But if you’re a big enterprise or you’re a developer in a big enterprise and you’ve got particular use case and you don’t think we know about it, you all know where to find me and we would love to know about it. The more people who are sort of feeding us back the problems, and that doesn’t necessarily mean that you’re opening up issues on GitHub or whatever, it means that we understand maybe the greater architecture problems, we’d love to hear from you.
Ward: I think all of that really though does clarify things. Because what I think about Release Candidates—I’ve been in the open source world for quite a long time but I always still thought of it as a this is what we like to put out there as the final version. Borrowing any bugs or anything like that, and so that clarification really helps because then it’s look we’re putting it out there so we can have the conversations we need to have to make sure that it works for everybody.
Jules: Exactly and I think that’s sort of different. I remember after NG Conf when Brad and I we did the KeyNote and we said this Release Candidacy thing and all of a sudden the team in the room that night was talking about RC2. I’m like, “Wait a minute, how did we get all the way to RC2 already?” “It’s Release Candidacy.” “What does that mean?” I think it was Igor who told me we had more than seven RCs for Angular One. I was like, “Really? Wow.” That was the first view I had into it’s different. The RC expectation was different. although I’ve seen the memes “More instability in the Release Candidacy than on the Beta.” Actually, that’s a good thing because it means that we heard from our users and the developers that we had not thought through some things and we we’re able to fix those and what comes out in final will be better for it.
Ward: I think it’s worth the wait and it’s worth the trouble because in this last push, we have done some really remarkable things to the product. They are all good things and we should probably touch on a few of them just to—I do expect that people will hear this podcast relatively soon so we should be able to.
Charles: Between you, me, and everyone else, this is going to go out next week.
Ward: Alright. I’m just going to pick the things that I think are really big. I agree with you Jules, the Angular Modules, NG Module, is probably the biggest change that happened in RC5. It was driven by our work on the compilers which I’m going to talk about second. But just so you have an intuition, the ideas of course if you build your application, you want to organize it into useful chunks of features and functionality. There wasn’t a formal construct within Angular that could represent that and now there is and it’s called NG Module. You can partition your app into these things that make sense to you like if I had an ERP system, I probably have customers, modules, orders modules and stuff like that, I’d break it up like that.
Jules: One of the first said when I read the design document, and I think I actually pinged this to you Ward was, “Hey, didn’t we used to do this back in the day?”
Charles: Angular module in Angular One?
Jules: No. I mean back in my c sharp.
Jules: Those days, where this is essentially how we used to break our apps so I might be responsible for the person component for example, we didn’t call it that, and Ward was responsible for the orders one and we just kind of push them in the end in our app.
Ward: That was in Angular one then we said, “Yippee, modules are gone in Angular Two.” Well they’re back.
Jules: My question was that I didn’t know Angular One but what I have heard from people is that, “Oh, this is like Angular One.” I’d love it if as you’re going to through your overview, touch on that.
Ward: Yep. I don’t know too much about it because connection but people did write Angular One modules and it’s the same kind of thing. We have an Angular Two module. It’s much different actually than the Angular One technically, but it’s useful for compartmentalizing your applications just that way.
One of the great things about Angular Module is the annoyances that everybody has experienced so far, pre-RC5 is that they had—when you barge your templates and you wanted to make use of components, directives, stuff that you wrote, you hang onto every new component and you had to have these directives and pipes. You’d have to repeat yourself over and over again in order to be able to use something like my food directive or my bar component, something like that.
Now, it doesn’t work like that. You declare all those components, directives and pipes in the module. You import them from something else if you have a short collection and you say, “Hey I want to use these on my templates in my components in this module.” They are just as if they were native HTML, no more component directives or component pipelines. I expect people will be cheering at this point because nobody really loved enumerating those.
That’s a big thing. One of the other big things is that we don’t bootstrap the main component, we bootstrap the module, the root module. You define a root module at the beginning of your application that is going to hold just sort of the initial root component and set up any services that you want to have globally throughout your application and then you boot that module and up it comes, that’s your starting place. Your starting place is your app module whereas it used to be your app component. That gives you the chance to really do all that initialization that was kind of hard to do in your component.
From there, what you do is you start importing the modules that represent different feature areas of your application. Or, and this is also really big and new, you may decide that you’re going to have a router in your application so you can route from one feature area to another and you may decide that you want to lazy load those feature areas.
Let’s say I start the application and the first place I go is some dashboard. That’s cool. Dashboard comes right up then you decide that you wanted to go with the customer’s feature and that gets lazy loaded synchronously because it’s in the module. And then they navigate, they’ll say, “I’m done with customers, I want to go look at orders,” and so they click on the link and now that’s lazy loaded. What you do is you get this kind of pay to play feel from your modules.
It’s really easy to load the functionality that you need for you as a user now dynamically as you go and. Because the router is doing the work here and my top module doesn’t really have to know about that, all I have to do is set my routes up and this stuff comes in just in time as I need it which is pretty cool because I can also now—because I’ve always wanted to do this, and Jules you know this, both in the enterprise and in commercial software. You want to say that certain users get certain kinds of features they only get those features. You don’t want to bake those in because then everybody has them and you’re trying to figure out how to disable them. Now, you can just control that all at once. I found out that Jules is allowed to have everything and she—
Jules: Of course I am.
Charles: Why wouldn’t you, right?
Ward: But Chuck is just a schmo in the mail room all he gets is the mail.
Charles: And turn on the mic,
Ward: Anyway, you’re going to be able to do stuff like that there and it’s super easy to setup the routes to do this lazy loading thing. I think lazy loading is another one of the big things that comes in RC5.
Charles: Can I clarify something here? When you say lazy loading, is that where it actually goes back to the server and says give me more?
Charles: The lazy loading then is more around the fact that I can have like an admin customer component and Chuck the Schmo customer component and it’ll lazily load that dependency at run time so that it only has access to what I want it to?
Ward: It can come over the wire or it can come all at once, it all depends on how you package it. I’m just getting to your point about whether when I request the Chuck feature, whether it goes to the wire or not, is entirely developer’s choice.
Ward: When you don’t do anything at all, it goes over the wire but later if you want to really make this super octa hole for somebody to have it close by and load a bunch of modules at once, you can package them together and it will all come down. As a developer trying to shake the size of things for production use, I’m going to have a lot of options here
Charles: Lucas has been real quiet. Do you have any questions, Lucas?
Lucas: I’m just sitting here being sad and grumpy about all of the tons of content that I need to rip up and redo. Worked on hundreds of blogs and hundreds of projects, videos.
Charles: Jules, it’s her fault.
Jules: I apologize to you and to everyone else who has that problem. It was something that we discussed at link and we had many, many, conversations with the tech leads. The bottom line is the question that we had to addressed was is Angular better when if do this? And the answer was yes. We knew that this was going to be ugly for some people and we hope to give everyone as much notice as we can but yeah, I apologize for that.
Ward: Yep. That’s part of being in there, ahead of the release. The end result is worth it because there’s a next big thing that I want to talk about which is the new compiler options that you fix. Right now, for previous RC5, we’ve really only been able to do things one way which is that we would download Angular, come over the wire and inside of Angular is this giant compiler that looks at the templates and looks at all the information and figures how everything is supposed to go and then produces some fast code that wires it altogether.
There are two things that were problematic with that. One is that the compiler’s pretty big, it’s as much high of Angular altogether. The other is that that soaks up a lot of the sort of initial execution time while it sits there and compiles and puts things together so you’ll have to wait until that’s done before your app is ready to use. If you could take those process back and do them as part of your build process then we wouldn’t have to ship the compiler down, Angular becomes smaller and you wouldn’t have to wait for it to compile anything because it already is being compiled. Now that’s possible.
You can still do it the in the browser way which is great for development and that’s called a just in time compiler. But when you’re trying to have a really good production result, you’ll want to switch to the head of time compiler, pre-compile all that stuff and only send down the core Angular libraries and the extra libraries you want but not the compiler because everything will already be compiled, it’s already sitting there ready to execute when it lands in the browser. We’ve got these two great options but the head of time compiler is really the exciting thing for people who need applications that are small and start fast and run fast.
Charles: That is really cool. I know that that payload size is definitely is something that people are sensitive about on mobile. Being able to address that and saying, okay all of that work is done somewhere else and then it just comes right up on the phone.
Ward: It’s going to be very big in those environments. Very big in ones where the bandwidth isn’t terrifically good. If you’re in the world or part of a bad country that doesn’t have a great internet connection then you’ll be able to get going things better. I think those things are big. We have a new forms module that’s coming out that we’ve much improved. We started to see them RC4 but it’s got even better, router has gotten much better for RC5. RC5 is really a big—it’s a giant step forward for RC4, it’s almost a gold standard. I think it’s pretty exciting.
Charles: One thing I’m wondering about, this is something that both you Ward and you Jules mentioned was the deprecation and how you’re going to get rid of the deprecations in the RC6 and then make sure that things don’t fall apart. I’m curious how much stuff really was deprecated then in RC5? How big a change is this? Because if it’s deprecated then if you drop RC5 on top of an RC4 app, it should run. It will give you deprecation warnings but it should run. If you drop an RC6 on an RC4 how much stuff is going to break?
Jules: Well, I think that depends on how much you’re relying on deprecate APIs but we did have an intern. I don’t know the size of the deprecation surface but we are not deprecating anything that has not had notice for more than two releases. Wait, did I say that right? Anyway, we should have given you two releases notice. There’s nothing in RC5 that we’re suddenly deprecating in RC6.
Charles: What you’re telling me is that if I’m using RC4 and I’m getting deprecation warnings, I might get new deprecation warnings in RC5 but nothing is going to disappear out of RC6.
Jules: Correct me if I’m wrong but you should not get new deprecation warnings in RC5. There should have been a stability of two releases.
Ward: Well, I probably do have to tell you.
Jules: That that’s a lie? Am I lying?
Jules: I was out for the RC4 and so I was out of the office on a leave and so I could have missed that.
Ward: I think that’s largely true for a lot of the pieces but there’s a lot of time between RC4 and RC5. The policy that you’re describing is really great when we we’re having weekly release but there was a big gap in here between RC4 and RC5.
Jules: Was because I was out of the office,
Ward: There are a lot of names that have changed. The whole testing apparatus which by the way is also one of the great things that’s in RC5 and the testing chapter isn’t up yet but it’s going to be. Lots of improvements in that but a lot of the names have changed but probably it will affect almost every developer in the deprecation, the things that NG Module displaces. That means the way you’ll bootstrap which is actually easy. It’s like five minutes to fix the way you bootstrap but you’ve got to take the five minutes and then you’ve got to sweep through your code and pre-solve the component directives and that pipes are going to disappear, that’s deprecated. That just happened between RC4 and RC5.
You’re going to have to do that in order for RC6 to work. That happens to be a mechanical process, a really mechanical process. Basically what you do is you look at each of your components, you yank your directives and pipes into a list and yank them out and go to next one, next one, next one. When you’re done, you de-dupe it and you drop it into the module that owns all that stuff and you’re pretty much in good shape. It’s mechanical, it’s not going to be bad, but you gotta do it.
Charles: What you’re saying is instead of declaring all the dependencies on the component, I can declare them in the module?
Ward: You bet you.
Charles: Oh, I like you guys.
Ward: Yeah, I’m telling you this is one of those things where everybody is going to say, “Oh, you want me to do that work? I can’t wait. Let me get that stuff out of it.” Lucas is and it’s hard to go back and edit the directives and pipes out of those videos but anybody who’s got an app is going to be saying, “Thank you.”
Charles: The thing is then I don’t have to keep track of where I’ve injected all this stuff because the module will keep track of it.
Ward: Yup and if you forgot one, the compiler error is great about telling you about it which was also just one of the many great improvements. Now that the compiler expects to know and compile on time what’s what and where’s where, the message that we got are much clearer about the fact that you’ve got—you said you wanted foo and there’s no food here I don’t know what you’re talking about. You can fix that stuff.
Anyway, right now, the way we ship RC5 is you can still have those things in there and Angular makes its best effort to promote whatever you wrote in your directives and pipes up to the declarations of the module. It will do its best. It’ll get it right probably 90% of the time but that’s stuff is going away so by RC6 you’re going to have to remove those things out or your code won’t work.
Charles: I’ve got a couple more questions, one of them is, I know Ward you were talking about documentation. This episode, I think it’ll go out on the 18th. Assuming it’s the 18th, will the documentation reflect all of these changes?
Ward: The documentation reflects all those changes as I speak.
Jules: It’s one of the things that I find the most amazing about this product and release the process that we go through. I think I’ve mentioned on stage on NG Conf is I’ve never seen a product team be like we can’t release until the docs are done but I will stand here and tell you that this morning when Igor cut RC5, Kara retweeted someone who found it, and I’m like, “But wait, we didn’t post to the blogpost.” And Naomi says, “Oh because we’re pushing the docs. The docs have to get out before we announce.” I would say that our content and the docs word so amazingly are absolutely a part of what we consider release and we’re not releasing until they’re done.
Ward: I wish I could take credit for it but what we have is a fabulous authoring team that has worked busily to keep all these things in sync and ready for RC5. My kudos to the entire authoring team. You go to contributor’s page of Angular and you’ll see them all there. They’re a great group.
Charles: I guess the next question is how do I install the Release Candidate? Do I just do an NPM install for Angular Two again or
Ward: Well the good news is that if you go to the cookbook section, you will find an RC4 to RC5 migration guide and it’ll tell you what to do.
Ward: Yes, it is essentially clean and natural, old modules and putting the new ones in. Like I said, there’s this bootstrapping dance that you have to do which is about five minutes of work in one place and you’re back in business.
Charles: This is exciting.
Jules: I think it’s pretty exciting.
Ward: I’m happy for two reasons, one I’m really happy with where we’ve come out. I think the changes that we made which were painful because nobody really wanted to change things that much but I think they’re worth it, I think they make the product great. The other thing that I really like is I honestly believe this is it. Lucas, crank up the video machine.
Lucas: I’m just shooting all Angular One these days.
Ward: I think this is it. I could eat my words but I don’t think so.
Charles: I think you’re safe there, Lucas, I don’t think Angular One is changing a whole lot anymore.
Lucas: No. Although my course on writing Angular One and Angular Two patterns is out but we do our list.
Ward: I’m wondering if I’m missing, if I left any modules.
Jules: No. I was just going through my little check list. I think those were the big ones.
Ward: If I have an RC4 app I’m hustling to get this thing up and going and seeing how it goes. This is really the time to especially if you’ve got an enterprise product, this is the time to shake it out and tell us about it because your window for making changes is shrinking.
Jules: I guess the last thing I would mention is that now is also the time for us as a core team actually most of this team is external contributors, is to make CLI good too. One of the things you can’t do is build tools with a moving target as the end state. Now is the time for us to also bake the CLI and make sure that it does all the things that we need to do. I think that’s going to be a focus for us as we do no further breaking changes between RC5 and RC6.
Ward: We aren’t even talking about the amazing things happening in the CLI world which and you’re right, they’re trying to catch up.
Jules: Yeah. That was what I was specifically talking about. We had a meeting yesterday on the CLI and trying to make sure to make a plan for it to also be included as an Angular release the we may do in the coming future. Definitely the CLI is something to keep an eye on, it’ll have some changes in the coming weeks as it moves to support RC6.
Charles: Did you say that you’re moving from system JS to WebPack?
Ward: You did hear that right—we haven’t percolated that all the way through everything yet but it sure looks like a conclusion to me. I’m looking forward to seeing how that plays out. The good news for Angular application is that most web style happens outside of your existing application. It’s all about setup. Setup is painful, it has been painful.
Charles: We already had that conversation.
Ward: We had that conversation but at least the fire is out of the house. The house is safe, the dumpster’s in the back. We got to fix that but inside the friendly confines of your Angular application, the world is still as it was but that is something we’ll be challenged with to make that transition.
Charles: I guess the last thing I’m wondering with this because generally, there’s a list of things that have to happen before the “release.” We were kind of tracking this when we we’re looking when are we going to get the beta for Angular Two then when are we going to Release Candidate for Angular Two. I’m curious, for final, is there a list? Is there a place where we can go look at the list and see how long it is, then is there any idea how long we’re going to watch and see for stability?
Jules: Are you just pushing me? You’re really trying hard to get me to give you a date, aren’t you?
Charles: Date range would be a—no, I’m just trying to give people an idea, are we close? Are there other things that are likely to change?
Jules: When you ask for this list, are you referring to sort of the burn-down list that we had done previously that’s more of a product in focus—no. Other than what you see in the Angular Weekly meeting notes, there isn’t a list like that and actually there should be not a huge list of those and there should be basically one line on that list, that would be bug fixes.
Jules: Of course all softwares should ship bugs, we don’t expect to fix all of the bugs but this period of no further breaking changes in core excludes bug fixes. I think that triaging and ensuring that we fix the biggest bugs is the next thing on that list.
My list is completely different than that list because I’m not engineering this products. Do I have a list of things that have to happen before final? Yes, it’s not a public list but those things include making sure we let our GDEs know what’s coming, making sure we let the partners that we’re aware of know what’s coming so that people like PacketPublishing, Egg Head, and poor Lucas can redo content where necessary. As leading the dev world team, yeah we have a list of things that need to happen before we can really something as final. As far as engineering list goes, I think you’re seeing it in weekly notes and it’s called Bug Fixes.
Ward: I have my list of documentations of things we want to deal. We have some areas that need attention. If I had to say, I think that—again, I’m not, it’s definitely before the world series.
Jules: When is the world series? I don’t know sports.
Ward: I don’t either but I know it’s on October.
Ward: I would bet my house before then and I bet my car that it’s before you get your kids to school.
Jules: I would bet my house and it’s in Maui so it’s a huge bet. I would bet my house with you, Ward. I don’t even remember when my kids start school so I can’t say that.
Charles: My kids start school about two weeks.
Ward: No, not your kids.
Jules: Oh, I do know. My son, starts college and it’s September 22nd. What do you think, ward?
Ward: I think you’re safe. It’s really soon and the key thing, I know that for many enterprises you may not be even go to your manager unless the thing is already released. I wish I can give you something but I think if you’re not living in that environment, but you’re living in that environment where it pretty much says, look I just can’t have this changed off under me. Is this really it? I think the answer is yes. Starting with RC5, I really think this is it.
Jules: I really do too. It’s funny being in a room with Igor and all the engineering team because they are always hesitant to say yes and I think that’s because they want to make the best product ever and if some big thing gets found because we removed some deprecated APIs and all of sudden I think they’d want to fix it. I also think there’s a time when you say enough is enough. We could always release more software we know the course so yeah no more breaking changes.
Charles: That’s fair. To that point, I think generally the community appreciates that the engineers are very committed to making sure that it’s well put together and stable and that they’ve done the right thing in the right place. We all want to know, September 32nd, we can just hit it but we also know that sometimes not a reality that you can commit to a software.
Jules: I think that’s why you hear all of us that work at Google and this is true even before I joined the Angular team shy away from ever getting out specific dates. I think all of us, or most of us have been in the software world long enough that you never know what’s around the next corner but I think what we’re saying is we pretty accurate.
Charles: Cool. Anything else we should go into before we hit the picks?
Jules: I forgot about picks.
Ward: Me too.
Jules: I’ve worked so long I forgot about picks, it’s horrible.
Ward: I think I’m going to dream up my picks,
Charles: I’ll go ahead and jump in and throw some out. I’ve got a real big pile of interesting stuff from movies and TV shows and stuff in my office. In fact, I have so much of it that I’m looking of putting floating shelves on the other wall so I can put more of it out. A lot of them came through a company called Loot Crate. I don’t know if it’s been picked on the show before. I may have picked it a long time ago but basically, I get a box of stuff every month. I get t-shirts, I get bobble heads. I’ve got a Terminator head, I’ve got Tribble from Star Trek, I’ve got a whole bunch of different kinds of things form like Warcraft. I’ve got a Ninja Turtle over there.
Jules: It’s interesting because I have been looking at Loot Animate for my son, he’s going to college. I wanted to do, I was thinking like mom send cake packages but he loves animates so I was looking at Loot Animate but I don’t know anyone who’s used it.
Charles: I haven’t tried it. The loot crates are really cool, though.
Jules: It’s the same company so I’d assume that if it’s a really cool with the crate, they probably make them good too.
Charles: If it’s the same company, then they do a terrific job with those. My kids, they come, “Dad, can I play with that?” “No.” “Dad, can I have that?” You know, it’s pretty funny. It’s terrific stuff. It’s high quality stuff. It’s not that expensive. I highly, highly recommend them. They are terrific.
Another pick that I have, and this is one that I don’t talk enough about I don’t think, that is Sticker Mule. I get stickers for all the shows at Sticker Mule, I’ve been kind of tempted because now, they’re doing magnets. In fact, they sent me a package with magnets in it and so I’ve got like the male chimp head, the dribble logo, the Google Chrome logo, the like thumbs up from Facebook and the OctoCat in GitHub. They all came in the same envelope.
I’m looking at different ways that I can and get people involved and enjoying the brands around the podcast. The stickers are always a hit. I usually get the three-inch square which takes up a good chunk of somebody’s back of their laptop and people put them on there proudly. Sticker Mule is another one. They again don’t cost a ton and lot of fun stuff. Lucas, do you have some picks for us?
Lucas: I do indeed have some picks. I have a couple here. I think my favorite pick of the week is I bought an osmo coding set off of Amazon and it’s kind of a simple, I think you can hook it with your iPad and it has this kind of cues that you assemble for small children. I bought them for my five-year old and last night we sat down and he was able to actually pick it up in five minute but the idea is like I need to walk, I need to go up, two square overs, then I need to walk down two squares, You’re kind of causing whoever’s playing to start to think no obstructions.
I’m pretty excited that my five-year old is starting to be interested in these things. I actually had to kind of tear him away from the game which I thought was pretty awesome. It’s really well done. The Osmo set coding is about $50 and I think I’d buy a base, I’ll set up. It’ really good and approachable for young children who are looking to possibly learn how to program.
My second pick is I was at Costco yesterday and they have these premier protein shakes that are on sale right now for about $19 but even at full price, $25, you get 18 of them. Each one is 30 grams of protein, more importantly there’s only one gram of sugar. If you use protein to satisfy sugar cravings throughout the day, this is a really great price for protein. You can actually take some cold brew coffee, just drop a little bit in there and it tastes really good.
My last pick is NG Migrate which is at ngmigrate.telerik.com. The project has been started by Todd Motto. Him and I have been collaborating on some stuff and I have an article that’s going to be dropping in the next two about from Angular One controllers into Angular Two component classes. It’s a really solid project, I think it’s going to go long ways from bridging the gap from Angular One to Angular Two. I think Todd did a great job and I’m super happy to be collaborative with him.
Jules: It is a super great project. Just so you know, it’s actually a line item on my final to do list. I should probably reach out to you because the dev roll team has a priority to focus on NG Upgrade and NG Migrate. I have it as a note to reach out to Todd so I’ll reach out to you and we can chat about it.
Lucas: We should have him on the show, actually. He’s awesome.
Jules: We should, cool.
I went on a—I do a hiking trip with my children every year, I’ve been doing it for about 12 years. The week before we left, Steven Cluen, one of our developer advocates, brought in his Phantom 4. One of my picks is definitely if you’re interested in high res, amazing video experiences. I can’t do the little games for my kids anymore, I got an 18 and a 15 year old, they need the expensive toys. We went out and we got a Phantom 4, it has been the coolest experience to do with my children.
It’s the drone with the HD camera in it. At first, I thought it was going to be really difficult to buy and I was not going to buy it for my kids because I thought they’re going to crash it and it’s a really expensive toy. Steven actually brought his in and my daughter was here on campus with me. We played with it and she was able to fly it and it lands by itself. I was really worried, I’m going to crash it when I land it. It actually just pushes a button and it comes down to the ground and it’s really awesome.
The coolest part about it for me is my kids are really creative so they’ve gotten together and videos places where we’ve lived for their entire lives and they did this montage of their childhood home and where they grew up. It was really, really cool. If you’re interested at all in video and making HD videos and creativity like that, I can’t tell you how fun the Phantom 4 is to use.
My other pick would be a company called Munchery. It’s munchery.com and I actually was first turned on to them when I was commuting up to San Francisco on my first job at Google. They just came back to San Diego and as I mentioned I was out of the office for medical reasons. Munchery was amazing because basically everyday at 3:00 they delivered the most amazing meals to my doorstep. I relied on them for weeks to get me through my food intake for the day. It’s not like any other delivery company that I’ve ever used before, the food is perfectly assembled for how to reheat it and the food is awesome. Highly, highly recommend Munchery.
My last pick is special. As you all know, I’m a huge beer drinker. But, I primarily only like Belgian beers, I don’t like this whole California IPA craze thing, I don’t understand it. If you love beer and you love IPAs, I have a new favorite beer and it’s actually an IPA. Go out and find Alpine beer company’s Duet and it is that good that it’s converted a Belgian beer drinker. Those are my picks.
Ward: That’s news I can use. Phantom 4, Star Wars, but beer. That, I get.
Every once in awhile, I sneak away to watch the Olympics. I am blown away by some incredibly dominant performances by some amazing US women. Katie Ledecky comes out to mind, I just watched her set the world record in the freestyle, some ridiculous distance, by two seconds. Nobody beats anybody by two seconds but she does.
The women’s basketball team is just doing amazing things, the women’s gymnastics team was up ten points compared to anybody else in the world. That’s an entire apparatus, you can completely forget about the balance theme and win if you’re up by ten points.
The women’s beach volleyball has also been great fun to watch. I’m watching a lot of that stuff when I’m not knocking my fingers on the keyboard. Go check some of those out.