[Do you wanna have conversations with the Adventures in Angular crew and their guests? Do you wanna support the show? Now you can. Go to adventuresinangular.com/forum and sign up today!]
CHUCK:
Hey everybody and welcome to Episode 13 of the Adventures in Angular podcast. This week on our panel, we have John Papa.
JOHN:
Hey, everybody from sunny Florida.
CHUCK:
Lukas Reubbelke.
LUKAS:
Hello, from Phoenix!
CHUCK:
I'm Charles Max Wood from DevChat.tv, and this week we have a special guest, Scott Hanselman.
SCOTT:
Hello, from Portland.
CHUCK:
Portland, awesome. Do you wanna introduce yourself really quickly?
SCOTT:
Like you just did, I'm still Scott Hanselman from Portland.
JOHN:
Wait, wait. Who are you now?
SCOTT:
[Chuckles] [Spanish accent] Antonio Banderas.
CHUCK:
Wow.
SCOTT:
Yup, I'm Scott Hanselman. Google me.
CHUCK:
There you go. I do wanna point out; Scott has a pretty awesome podcast. Do you wanna give us kind of the three minute pitch on that?
SCOTT:
Three minutes? That’s a lot. That’s like a huge amount of time. That’s fantastic. Well, I was born a poor child in Portland, Oregon... I've got a couple of podcasts, if you go to Hanselman, like “Hansel and Gretel”, Hanselman.com/podcasts. The main one is called Hanselminutes. It's a 30-minute show. It's kind of like Fresh Air, if you guys ever listened to NPR. It's like Science Friday, Fresh Air of kind of thing. And it's really, really I think gotten its voice from the last couple of years. We got all sorts of people; talked to the CTO of NASA, talked to the organizers of SaaS Conf, talked to the guy, Michio Kaku who discovered String Theory. It's really, really diverse. So, it's Hanselman.com
Also This Developer’s Life is a rip off of This American Life that I do with Rob Connery. And it's a little bit less regular. Hanselman is every single week, but we still are doing This Developer’s Life. It's totally non-denominational. It's about developers and their lives, like getting fired. We did a show with DHH about what happens when you hit a homerun. Like you are 24, you invent something; what are you ever going to do that’s awesome after that?
CHUCK:
That would be interesting.
SCOTT:
It's a great show. We actually talked to DHH about Rails, and we talked to Dan Bricklin who invented the spreadsheet. Like, what do you do when you invent *the* Spreadsheet?
CHUCK:
[Chuckles]
SCOTT:
You wrote VisiCalc. You are 26; you invented the Spreadsheet, and now, what?
CHUCK:
How do you one up that?
SCOTT:
What are you ever going to do? You can just leave. Just buy an island and then go.
JOHN:
I'm done here. I'm out.
SCOTT:
Good night, everybody. It's just like Costanza; you just got to be like, “Good night everybody!” So yeah, if you do something amazing, you just quit.
CHUCK:
[Chuckles] Awesome.
SCOTT:
Anyway, two great shows. Check them all out. Hanselman.com/podcasts.
CHUCK:
Yeah, definitely ought to subscribe to those. Lots of fun. So we brought you out today. I don’t know if we have a particular topic, but…
SCOTT:
Angular, maybe? Just judging from the title of Adventures maybe in Angular.
CHUCK:
Yeah, there we go.
JOHN:
We were actually thinking of renaming it. We should do “Avengers in Angular,” I heard on the last one, so.
SCOTT:
Or what happens if it's like, Adventures in Ember? Or Adventures in Backbone? Or Adventures in jQuery? You can change it each week.
CHUCK:
No.
JOHN:
[Laughs]
SCOTT:
So is this evangelical? Is this the thing you guys just walk around and be like, “Have you heard the news about Angular?”
CHUCK:
[Laughs] I did that for two years of my life.
SCOTT:
I was just wondering. Do you have like a little name tag?
CHUCK:
[Chuckles]
SCOTT:
“Angular - Charles Wood”
CHUCK:
That’s right. I got to get one of those made.
SCOTT:
You should totally do that. There's a Stake Center that’s 100 feet from my house.
CHUCK:
[Chuckles]
JOHN:
So one of the things we were trying to get Scott on for is I've been back in the Microsoft world and there’s a lot of really cool stuff coming out from Microsoft these days that deals not with just Angular, but kind of just the web and the revolution that the web is going through . I thought it would be neat to have Scott share some of what he’s been seeing, not only inside of Microsoft, but outside of Microsoft because he's a very public person.
CHUCK:
Can I clarify two things before we do that? First off, Scott isn’t the PR or whatever person for Microsoft. So Scott sees interesting things because he’s in Microsoft, but doesn’t necessarily spread the message according to Microsoft, I guess.
SCOTT:
I came to work with Microsoft five, six years ago to change stuff, to open source things. But I've been in the industry 22+ years. It's a great job. I like working for Microsoft. I work remotely. But I don’t need the job. So people are always like, “Oh, you are mouthpiece for your employer.” You know, I mean, I like my surface but I also am upset that my iPhone 6 Plus hasn’t been shipped yet. So it's all about balance. So yeah, my opinions are my own. I really don’t care. And actually, did you hear about all the YouTube videos that got taken down last week?
CHUCK:
No.
JOHN:
No, I did not.
SCOTT:
So this will give you an idea of like how connected my employer and I are. Microsoft, a couple of days ago, accidentally sent out take down notices, because they found product keys in the comments of YouTube videos. People were basically stealing Windows. So instead of deleting the comments, the videos got taken down. And this has caused a big scandal because a bunch of like “basic how to” videos have been taken down.
CHUCK:
[Chuckles]
SCOTT:
I'm like, “I work for Microsoft.” I'm like, I kind of thought that YouTube was my backup. I looked around for the file. I can’t find this file. There’s no way to upload it to Vimeo or whatever. Anyway, the Microsoft account, Chris Pirillo was taken down, a bunch of people were like, “Oh, I guess we should apologize.” They undid it. My video is back up. But yeah, when Microsoft sends its own employee a takedown a video, it lets you know like, we have lives on the side, and they didn’t even know.
JOHN:
I’ve got this image in my head of Sacha standing on your back, with your arms behind you twisted up in the air going, “Stop doing it, Scott.”
SCOTT:
Pretty much. It's like, “Stop making how-to videos that are helpful, or I will take away your 401K.” [Chuckles]
CHUCK:
I'm just waiting for the day that you get a cease and desist and a paycheck from Microsoft in the same day.
SCOTT:
If that happen, I would take a picture of that.
CHUCK:
[Chuckles]
SCOTT:
I would be like, “Yes.” [Chuckles] Anyway, there are lots of cool people at Microsoft that talks the straight poop just like those people at Google that do the same thing. Although no one at Apple is ever allowed to speak publicly.
JOHN:
I think they actually cut their tongues out of their mouths when they go there.
SCOTT:
You know, where are the Apple bloggers? Apparently, the only one allowed to talk is Gruber. He's the only one that’s kind of like allowed to speak. Everyone else just…
JOHN:
It’s he who must not be named.
CHUCK:
[Chuckles]
SCOTT:
Apparently.
CHUCK:
The other thing I wanna point out is Microsoft really has embraced open source, especial in the last few years -- that I've noticed anyway. So if you're behind that effort, then thumbs up.
SCOTT:
I'm behind that effort only because I'm the only one on the podcast who can take credit for it, because there's no one else here. But in fact, it's a huge pool of people. It all kind of started about six years ago, but I mean you’ve got people, I mean these are names that people may or may not know. Damian Edwards, Phil Hack now with GitHub, Glenn Block, and Mads Kristensen. There's like a cast of thousands. And since then, they’ve actually made their own organization like Microsoft Open Technologies, and they are putting code, and they have been doing GPL code. All of Azure SDKs, open source, ASP.NET is running on a Mac, and we've got Intellisense working on Sublime. 20% of Azure runs Linux. Thousands and thousands of Nodes sites running in Azure on Linux.
CHUCK:
So anyway, back to John’s question, what are you seeing with Microsoft and AngularJS?
SCOTT:
So there was a time when it wasn’t clear if jQuery is going to win, and then Microsoft made the move to ship jQuery with Visual Studio, right? So it's a supported version of jQuery. And that was good and bad, in that we kind of picked the winner, right? And it was cool, but then the question is like, well with Angular and all of the different other related libraries, should Microsoft throw their weight behind one? A bunch of people surprisingly were like, “Hey, maybe you guys should write your own.”
CHUCK:
[Chuckles]
SCOTT:
Seriously though, right?
JOHN:
That is so baiting you.
SCOTT:
It's not just a Microsoft thing, I mean that's an IBM thing; it's a big company thing. It’s like, “Well, popular open source thing made by the people… not really made by the people, becomes popular; you should make the Microsoft version of that. But then it’s like, “How could x number of smart people at Microsoft can compete with x to the tenth number of smart people in the world?” If Angular and libraries like it came from the people in the sense of the greater, smarter people of the internet, who are we think that the 15 people on this team could do it better? You know what I mean?
So we've completely changed our perspective on stuff like that. So if awesomer stuff exists, then we should just support that. So like our JSON serializer sucks, so we use the thing called JSON.NET and Angular is great, so we think Angular is great. So bring it in. Modernizr, jQuery, Knockout – just any library that’s good, rather than us trying to make our own, will make the tooling that people who use Visual Studio expect awesome on it. So we're adding all sorts of great tooling for Angular on Visual Studio.
JOHN:
In the new world of Microsoft, I mean, that seems to be a lot easier to actually go out and do under and Guthrie and all that. I mean, it seems to me like that’s happening more now than ever. Would you say that’s true?
SCOTT:
Yeah. So internally, we have a word for this; it's called Executive Air Cover. So when someone says, “Hey, I wanna do this.” Some manager will say, “Do you have air covered?” Meaning, “If you do this, are you going to get nailed from on high?” Now that Guthrie and Sacha, Sacha actually used to be Guthrie’s boss. Sacha use to be the boss of Azure. So I've hung out with Sacha before he was the king. Super cool guy. Totally gets it. Their attitude is like, “Hey, listen. What are we selling here, right? We sell Windows, we sell Office, we sell Azure. So anything that makes those things better makes those things better, and we should support them then. It's pretty much how it should work.”
The other thing that’s interesting is also that Angular is more than just the web, it's JavaScript in general. And since the Windows 8 and the Windows 8 Application Store people are really in to JavaScript. Most of like most of the first party native apps that we write, like the Mail app and things like that on Windows 8 are written in JavaScript. Lots of people are writing Angular, native applications kind of like Cordova type stuff, except for WinJS. So Angular means more to Microsoft than just the web. I mean, it's a useful pattern. It’s a useful framework.
CHUCK:
So did they officially bless it in some way, or is it just…
SCOTT:
It's not about blessing anymore. I mean, what does it even mean for us to bless it? You can use it and we won’t be mad? We’re thinking more as the editors. Frankly, the only thing that was really holding Visual Studio back right now is that it runs only on Windows. But if you sit down and like look at the CSS editor in Visual Studio, (and John can attest to this), short of like WebStorm, it's pretty much unparalleled. It is freaking epic.
I actually showed it to Lea Verou once at a conference, and she said, “I would almost spin up a virtual machine to get that editor.” And I thought that was really high praise. Not quite ready to put VirtualBox on my Mac, but I'm almost there. On the JavaScript side, they were building in support for Angular and Intellisense, so the native editor in Visual Studio knows that Angular exist more than other frameworks, and helps you go along with all sorts of things. Intellisense is more than auto complete, as John will tell you.
JOHN:
I think that’s the real key for me is like, I run a Mac now for most of what I do, and really don’t think [unintelligible] for Visual Studio. And the biggest reason I go there is, man, I dabble in about 12 different editors in what I do every day -- Vim, TextMate, Sublime, WebStorm, Brackets – the list goes on and on. And sometimes, just opening up is inside the terminal, but it seems like there's just… I'm using four, five a day just to get my job done. Whereas when I was doing purely .NET, I felt like I can live in Visual Studio and I was happy as could be. And I found that I was craving that awesome IDE on the Mac.
SCOTT:
I think that’s a Windows versus the Unix mindset. And I don’t say that… there’s no judgment in this. I mean, I've worked at Nike for years, doing exclusively Unix talking to backend db2 mainframes. I'm non-denominational in my religion. But on the Unix world, it's about small… and by Unix, I'm also talking about Mac. It's small, composable units of work, things, and pipe it all together and stuff. And with Windows and IBM before it, it's, “Pay us one fee and we'll give you this giant, complete, integrated development environment.”
And that philosophy is against kind of like the Emacs or the Vim kind of, “Hey, I'm going to totally have my own custom, Vim RC file, it's in a GitHub and I'm going to carry it with me wherever I go.” And it's my finely crafted, like real Jedis build their own Lightsaber kind of way of doing things. And it's neither good nor bad. I mean, some people watch the Yankee workshop, and make their own tools before they actually make their furniture, and other people just go to Home Depot and they buy stuff. And there shouldn't be judgment either way. But I would agree the right thing is somewhere in the middle. And I think Sublime is finding its way there with package control. You're finding that an integrated IDE does 80% of what I need; something halfway between Intellisense and autocomplete, and the rest of it is my toolkit that is totally custom.
JOHN:
Yeah, it's one of the things that I struggle with is, when I say, “I’d like Visual Studio on a Mac,” what I really want is not full Visual Studio, but probably 30% of what Visual Studio does.
SCOTT:
Exactly. So one of the things we're working on, (and we'll hear more about it in the coming months), is combining some interesting pieces of… there's a thing called Omnisharp that is basically a wrapper around C#, and then putting a wrapper around that, so that you could get Intellisense on Sublime, Emacs, Vim, whatever.
So the difference between Intellisense and autocomplete is autocomplete (and I'm using sublime as an example) is the, “I've typed this before.” That’s all auto complete is. And if you type “la, la, la super poopy” and then later on, you start going, “L-a… oh, you autotype la, la, la super poopy again,” right? There's no intelligence there; it's just autocomplete.
But with Visual Studio, the value that it adds is an intense introspection where it is actually running the JavaScript in the editor all the time, constantly and giving you typed information about what is going on in there. We're adding more introspection into Angular, so we'll know about what you're doing in Angular and offer you dropdown Intellisense. Externalizing that and making it available to non-Visual Studio editors would give you, John, what you want. The other thing that we're doing of course is putting support for Grunt, Bower, NPM and all that stuff in VS.
JOHN:
That’s exactly what we’re about to talk right here. I see Lukas just jumping up and down.
CHUCK:
[Chuckles]
SCOTT:
He likes that.
JOHN:
He does. Lukas likes some Grunt. I like me some Gulp. So I think between the two of us, we’d be very happy here.
SCOTT:
Well, the thing that’s funny about all those stuff, it's the Grunt and Gulp side of things, but I also wanna talk about the package manager side of things. It's like everything is the new hotness until it's totally not, right?
CHUCK:
[Chuckles] That is so true.
JOHN:
It's hot because I like it, but once you like it too, I don’t wanna like it anymore.
SCOTT:
I finally get around it using Grunt. John and I maintained the NuGet. NuGet is a package management system for .NET. So NuGet is .NET gems. NuGet is NET’s npm. So we maintain the NuGet packages for Angular, right? So John emailed me a couple of months ago, and he's like, “I'm doing this manually. It sucks.” So I'm like, “Hey, cool. I'll go and I'll do a Grunt to automate this process, so when a new Angular package comes out, I will make this NuGet package. And that would be great. John and I will be even closer.”
JOHN:
We've never been closer.
SCOTT:
We've never been closer. The bromance continues. So I send this to John, and I'm all happy. I'm like, “Look at me. How fancy I am with Grunt.” First thing he does is he rewrites in Gulp. I'm like, “Dude…” And he was like, “Grunt is this really last week.”
CHUCK:
[Chuckles]
SCOTT:
[Chuckles] So I'm like, “Well, we're are putting it NuGet, why don’t we just put it in Bower?” And he's like, “Oh, no. Bower was last Wednesday. We need to put it in NPM now.” And I'm like, “For crying out loud, where do I put this freakin thing that’s going to make everyone happy?” And ultimately, it's like BetaMax and VHS, right? I just don’t know who's BetaMax and who's VHS because inevitably, the thing that wins isn’t the most awesome thing. It's the VHS thing. BetaMax remains still, (apparently, according to some people) the greatest video format industry, right?
JOHN:
That’s the key is if you’ve been thinking about enterprise we’re trying to deploy these types of packages. Do you use NPM? Do you use Bower? And people say, “Well, NPM of course is Node, but you can also use that for a client.” And then what about these other things like NuGet and Duo and other stuff that’s out there. And then there's Nexus which you can use, and then you can get like a private NPM and a private Bower. The list goes on and on. It just makes my head spin.
SCOTT:
But everyone is making everyone else feel bad because they are not using the thing, right? Like I was at a meet up yesterday, and I was talking to someone on how I was enjoying using Sass, and they are like, “No, use Stylus.” I'm like, “Oh, for crying out loud!”
CHUCK:
[Chuckles]
SCOTT:
They were like, “Stylus is done in Node and that’s much better if you're doing Node. And SaaS is done in Ruby.” And I'm like, “I don’t really care if it's done in Lua. It's CSS. who cares what the underlying…”
CHUCK:
And I think what it really boils down to is what empowers you? What removes friction? What removes the obstacles out of your way for getting stuff done? And the thing that’s really funny is that I talked to a lot of people about different things. I do a lot of my work in Ruby, and they are like, “Isn't Ruby slow? It has this issue or that issue that they have with it.” And what it really boils down to for me is if I'm looking at what I'm spending, if I go get another VPS for $20 as opposed to an extra hour that I would spend trying to figure out how to solve the problem in whatever other technology you want me to be using…
SCOTT:
Yeah.
CHUCK:
What it really comes down to is it gets enough out of my way to where I'm happy. And then I do go explore these other things, because I'm always looking for a better way to do things. But at the same time, it works and it simplifies my life and makes things easier for me to go find success with.
SCOTT:
And the argument I find with like, “Isn’t X slow?” You know, maybe it is, but it was easier to write. I've got cloud scale now. I can scale up, I can scale out. Like I said, if that language is the language you wanna do. If it's Erlang, or Scala or whatever, if it makes you happy and you are like, “Man, I'm having such a blast writing this application right now.” Right on. Knock yourself out. But yeah, I mean religious arguments are a huge problem on the internet. The internet was almost formed around ways to argue about stuff. It was all about arguing about physics and science, and now it's about what's the best build system for your application?
JOHN:
That’s the big thing I struggle a lot is it's not always just… if you’re building your own thing, you can do whatever the heck you want. If you are building a large team, you don’t want a 20-person team working with SaaS, StyleLESS, CSS, LESS, in my own custom homebrew. You wanna have some kind of consistency. Whether it's a best one or not is not important. Sometimes consistency is more important than having just the best of…
SCOTT:
So what we’re doing is trying to build in the next version of Visual Studio and we’ve actually… you can look at my blog and go research for Gulp and Grunt and things like that. We've got NPM, Bower, we've got Grunt, we've got Gulp. We’re basically making it what we are calling the task runner explorer. So there's our build system which is our compiler, and then also a formal recognition of a client side build provider. Right now, .NET is very and ASP.NET is very much like there's a compilation step on the server and that’s it. And there's no formal recognition what the client needs; its minification and its build step. So we have and we are building that in now. So you can download it if you have 2013, and will be built in 2014 or whatever we call that next version.
JOHN:
I've actually run some several my Gulp and Grunt processes through it. It's pretty darn cool, actually. it works very, very well. In web storm side of things, I know they have a very similar thing for Grunt, and they’ve just introduced in their EAP for web storm 9, something for Gulp as well. So when you mentioned web storm before, it really is in my mind, the only one that’s even anywhere near Visual Studio has for some of the tools.
SCOTT:
Yeah, pretty much.
JOHN:
Although I must say, I do use Sublime a lot because it's so damn fast. But I do have like 20, 30 or 40 packages that I plug into it.
LUKAS:
Yeah, I think though that you'll be surprised, at least on windows, 2013 they are putting so much work in making the memory less. I'm going to bring up Sublime and Visual Studio at the same time. Visual Studio 2005 had a really bad rap for being from fat. And from 2013 on, it's actually not that bad from a memory perspective. I just loaded Visual Studio in a web project that’s using 120 megs of RAM.
JOHN:
It's actually been my biggest knocking with web storm actually…so when I develop on a Mac, I use web sublime most of the time. When I really need to debug node really hard and heavy, and node inspector isn’t cutting it, I go with webstrom. But I cringe sometimes, because it just ends up being slow. And it feels to me like Visual Studio felt, a couple of years ago where it was slow to kind of just crank things up. To me “slow” is anything that makes me wait more than a second. We've got this time frame these days and that’s what I'm looking for is that super-fast, I know what I got to do, let me get, let me debug it and move along.
SCOTT:
Totally.
CHUCK:
So I'm kind of curious. We’ve talked about Microsoft using their powers for good or for awesome with Angular. Do people come to you and say, “Hey, I'm working on this cool thing.” and giving you examples of how they work in Angular or some cool thing that they could do with Angular.
SCOTT:
Everyone has their little side project that they are doing. Unfortunately, the cool stuff that people are doing I think is, this is my opinion, is internal. So I hear a lot of like, “We're doing this amazing internal app for blah, blah, blah. I can’t show you though, but we're doing some really innovative stuff.”
And then also, “We should open source the innovative part of it. The part that’s not your specific intellectual property.” And like, “Oh, no. you can’t really do that.” So I think for every cool thing that is happening out in the open, there's probably five or ten other projects that are equally as cool, that company is just hamstringing their people from being able to. I know John does amazing stuff where he works, and we're not allowed to talk about it.
JOHN:
Zzzzzzz.
CHUCK:
[Chuckles]
SCOTT:
I'm just saying. I'm sure he's got some amazing libraries and some great utilities and the amount of work required to get big enterprise to release those things. It's just not even worth asking the boss to do it. That’s not specific to John’s company, it's specific to anyone who's not a consultant. If you think about that, right? Other than like Netflix, Google, and Microsoft, what would big companies are putting out a whole pile of open source. Unless it's a self-identified open source company, if they don’t have a policy at the highest level that’s code from a certain amount or less is allowed to be released, then people are just going to, “That’s too much of work. I'm not going to…”
JOHN:
I think that’s a huge, important point because what I hear a lot, I've been a consultant for years for Microsoft and so on, but the big thing they always is, “Hey, they find something cool in open source. Let’s say it's Angular, but just for grins here. And someone says, “Yeah, let’s use that. We need to make these changes to either bug fixes or enhancements to make it work for our company.” So then you fork it and then you do that. Now it happens when Angular 1.3, 1.4, 1.5 comes out. Since you can’t at your company, I'm not saying just you specifically, but let’s say your company says says you can’t contribute back…
SCOTT:
Well, I used to work at a bank and I've fixed bugs in log4net, and it took like three months to get permission to put those back. This is before a pull request, but to send them the patch file was ridiculous.
JOHN:
Yeah, like sometimes, I just accidentally go on my own, personal profile and make pull requests because I'm like, “Hey, I need this fixed.” Like ng annotate is one I needed a couple of weeks to go. And now I found free bugs and then I just said, “You know what, I'm going offline and make these fixes.”
SCOTT:
You know, this brings me up to an interesting thing. Contributor Licensing Agreements. So this was kind of cool and not specifically to Angular, but if you’ve contributed to Angular, you know how you have to fill out the Google CLA and do that whole thing. There's still some faxing involved at some point depending on the amount of code that you wanna contribute. Contributor Licensing Agreements are one of those things where as soon as open source projects get sponsorships, they become legit and now there's legal forms and stuff.
We, the Azure team, just came out with this really cool thing that are CLAbot. So if you for example, like all the Azure documentation is on GitHub as markdown, people don’t realize that. We actually run a build process on that mark down and those articles then show up on the Azure website. So if you, Charles, wanna find a mistake in the Azure documentation, you go, it’s here on GitHub, fork these docs, then you hit “commit”. And if it's more than like 10 or 15 lines, then it's really cool.
A bot will come and say, “Hey, I'm the Azure CLAbot. I can tell that you don’t have a CLA with us. Click here.” We link into your GitHub like using OAuth and then hook up docu sign, email you a form, you fill it out, send it back, it's entirely automated and the bot is actually labeling the GitHub pull request as CLA required, CLA received, and then pull request received. And we're looking to roll in that out to all of our stuff. So it's a completely automated totally official way to do licensing.
Really, really cool and not the kind of thing you'd expect to see from us.
JOHN:
I made a pull request to Angular probably 6-7 months ago, it's just like three lines of code change on a bug fix. And I figured it was going to be like any other open source; I just make a pull request, they review it, they merge it. This was, there was a CLA I had to sign and a process I had to go through. And they actually have an automated bot that went through that to like verify that everything worked.
SCOTT:
Yeah, yeah, we're working on that too; testing, making sure that… we won’t even look at your pool request and bother with CLA if it's going to break the build.
JOHN:
Right.
SCOTT:
Now, do you guys use Travis or what do you use?
LUKAS:
Every team uses different stuff. Some teams use AppVeyor, a lot of teams use the Visual Studio Online Build System, Visual Studio Online – VSO. It all depends. I’ve got AppVeyor for a bunch of my stuff.
JOHN:
I actually have a repo set up recently for some Angular apps that I wrote when I was running three or four of them at the same time, just to see which ones break and fail. Codeship is another one I'm actually using on there. They are pretty neat. They all offer the same basic core services, but what I like is some of these guys integrate with things like HipChat or Slack or Skype to tell your, “Team, this thing broke.”
SCOTT:
Yeah, absolutely. I think the idea of like these bots, HuBot from GitHub, Slack with Jabber, any bot being able to ask the bots about the build, do deployments from a bot are definitely something we are going to see more of… I think that’s going to hit like an inflection point.
JOHN:
Cool. As far as the Angular stuff goes, I know Angular 1.3 was just released couple of minutes ago. [Chuckles] No, this was couple of days ago by now.
SCOTT:
Two days ago, you texted me and you are like new Git is out.
JOHN:
The reason I mentioned that is like the day that happened, I was in an all-day meeting and all of a sudden, I got all these Twitter tweets and emails and hate mail, and I got a [unintelligible] to my front door. “If you don’t get Angular out there, you're in trouble.” So luckily, Scott took over and I was like, “Yeah, I think…”
SCOTT:
Using Grunt and Gulp, right? Using your Gulp, like yeah, getting that build process. You know what we should do is we should probably write a bot, because right now, I have to go in and like type something. That should just be automated.
JOHN:
Actually, having to type “grunt build” and then publish, that's really hard. [Laughter]
SCOTT:
Really, really hard. More time than I was willing to put into it.
CHUCK:
Noooo.
JOHN:
But it's funny because people are always like, Angular just recently announced that they are actually doing the Angular libraries on npm. They usually just do Bower, now they do NPM, and we're doing the NuGet side of it. So you can actually with Angular any way you want, which is kind of cool.
SCOTT:
Are they going to stop supporting… like, is Bower losing? It seems like I'm hearing from the people that Bower is kind of on the way out and it's going to be NPM all the way.
JOHN:
So when Brian Ford posted it on Twitter the other day, I think that I was watching the feed and before I could even ask the question, like 20 other people tweeted him, “What about Bower? Are you going to stop doing that?” Of course his answer was, “No, we're not going to do that, but the reason we did NPM is because we just had an overwhelming desire of people to want this to be delivered through NPM.” So it sounds like they are going to support both of these.
SCOTT:
Until one loses.
JOHN:
Yeah, it's just like anything you guys do as well, I imagine. Everybody wants both of these things, so why not offer both?
SCOTT:
Like I said, at some point, VHS has to win. I mean, there are still people out there that use like MooTools that are totally sour about the great jQuery fights of the auths.
JOHN:
They are still in denial too.
SCOTT:
MooTools will rise again. Just tweet that. But the same thing is happening around package management, I think. We just need to pick and be done, and move on with our lives.
JOHN:
I think we do and people need to get over the fact that NPM seems like Node, and Bower seems like client and there's good sides to both of those. What I really look forward to is I heard in your JavaScript Jabber, Charles, you guys were talking with the NPM folks about a private NPM that they are going to be offering in the near future. That sounds pretty darn cool.
SCOTT:
What I wanna see from a Windows perspective is we’re not going to be able to fix MaxPath anytime soon. it's a flatter NPM. Node module’s folder is stupid and it's a totally ridiculous, repetitive way. Express foo npm install. Okay, 80 MB of crap later. Like, “Seriously?” Thousand path long deep Node modules folders? I get it. Flatten that, please. Is there any word when they are going to flatten out?
JOHN:
They mentioned that on your podcast. Didn’t they, Charles?
CHUCK:
I don’t remember specifics.
JOHN:
Yeah, that caught my ear because nobody’s caught my ears. I deal with Mac and Windows where I work, and the Windows folks are always getting a bad rap of, “Hey, Node doesn’t work on here. Why?” It's not Node doesn’t work; it's that the Node modules folder is 1800 characters long, and therefore, we have an issue. And they were mentioning they were going to do that. I think that has to do with the triple or quadruple nesting of the same library it's dependent upon.
SCOTT:
I'm not trying to excuse Windows, the MaxPath issue is a problem. The issue is that the file system supports an indefinite length, but Windows explorer don’t understand things over a certain length. But regardless, 2000-character long path names are a hassle everywhere. We’ve all changed directory into our fifth Node modules even on the Mac, we're like, “Okay, I get it. Please.”
JOHN:
[Chuckles] Especially if you’ve got like 20 different flavors of Lo-Dash loaded in your Node project.
SCOTT:
Yeah.
JOHN:
Well, cool. We have a couple things coming up too, that I think is kind of important to mention maybe it's time to kind of get to the picks then?
CHUCK:
Yeah, we’re kind of at that time. Let’s go and do the picks.
SCOTT:
So Plex is a Media Server -- runs on anything. Plex.tv. Plex is glorious and they just released it for Xbox. So this means that I have a [unintelligible] Linux over in my closet here with all of my TV shows and all of my home movies and all of my archive DVDs on it. And I then have the Plex application on my iPhone, on my iPad, and now on my Xbox. It is my central ecosystem for managing all of my life’s media. It is everything. It is glorious. So if you are person who likes movies and you'd love to be able to sit down in your iPad and say, “Grab that movie,” and then jump on an airplane, then watch that movie, Plex changes everything. And the addition of it on the Xbox is glorious. It's truly, truly glorious. So if you haven’t heard about Plex, for god’s sake, learn about it.
CHUCK:
Awesome. do you have a JavaScript tip?
SCOTT:
Plex was written in JavaScript…? [Laughter]
JOHN:
You're making that up.
SCOTT:
I think actually, I suspect that Windows application was in fact written in JavaScript. Windows 8 apps. I don’t have a JavaScript-specific tip.
CHUCK:
That’s all good.
SCOTT:
I wish we have [unintelligible] in Chrome. That’s my tip.
CHUCK:
[Chuckles] Okay, John, what are your picks?
JOHN:
I've had a lot of picks in my head here, and then all of a sudden, Scott just threw me off completely. [Chuckles]
SCOTT:
Well, I think we need to talk about Beyoncé’s hair, because everytime I hang out with Charles on a show, we have to talk about the fact that Beyoncé’s cut her hair. And it's surprising to me that when I was on the JavaScript Jabber, she cut her hair and people freaked out. Charles was not aware. And she cut her hair a day before yesterday. She’s got bangs now. Charles was pretty upset about that. I can tell.
JOHN:
So I'm going to totally geek out with one of my picks here, since you mentioned Beyoncé. My niece Daniel is actually a singer in a band and she's been one of the top hits of the nation recently, which is pretty cool. Her band is Oh Honey and she just released a new album called Sincerely Yours, and it's up on iTunes. So totally shameless plug here, but check it out. It's pretty awesome music.
SCOTT:
That’s cool.
JOHN:
I'm going to see her in concern next week, actually. she’s going to be down here in Orlando. It will be really, really kind of neat to watch her in concert. She’s opening up for American Authors.
CHUCK:
Do you have a tip for us?
JOHN:
Yeah, so there's this thing called JavaScript and it's pretty cool and I like using it, but… [Chuckles] No, I've been using a lot of different Gulp plugins lately to kind of pick it back on to my Gulp fanaticism that I've been doing lately. And one thing I've realized is when you're using Gulp a lot, most of the time, I've been realizing, I don’t actually need a plugin. That’s the cool thing about Gulp is that you're writing stuff and you can go find a plugin for it, but most of the time, it just lets you drop in a Node and do what you need. So that’s my tip there is before you go looking for a plugin with Gulp, just actually see if you can write it straight up in Node.
CHUCK:
Nice. Lukas, do you have a pick for us?
LUKAS:
Yes. Last week, I've read The Hard Thing About Hard Things: Building a Business When There Are No by Ben Horowitz. It's just a phenomenal book. it's probably one of the best of his books that I've ever read. And it just talks about the hard things about doing a startup. It was truly phenomenal. I recommend it. I actually listened to it on Audible and it was good narration, really solid book, really enjoyed it. And I’ve spent the last week doing unit tests and I really enjoyed Karma. My tip for the week would be it's really easy to mock out services using $provide. And so it's just instead of spinning it up, I just found it was really convenient to just $provide and just mock out a service that a view controller or maybe another service has a dependency on, and you're good to go.
CHUCK:
Awesome. My pick is actually somewhat self-serving. I've had a lot of people ask me about writing mobile applications in JavaScript. And so I went and talked to all of my friends that pulled together frameworks that you can use to write mobile apps in JavaScript. And so we're going to do a round table on November 6th. It's going to be in the afternoon. If you want more information, you can either go to JSPowerup.com, or you can text “mobilejs” to 38470 and you can get information about that.
And my tip is that you cannot, I forgot what the service is called, but if you use a service to like a okay, HTML or some other text for like a link or something, you can’t concatenate to it afterward. So you actually have to stick to whatever your concatenating to it, and then make it okay for the whole thing. So anyway, that’s my tip.
Thanks for coming, Scott.
SCOTT:
Thank you very much for having me on.
CHUCK:
It was a lot of fun.
SCOTT:
I hope so. We'll find out if there was any actual content. The listeners will be like, “It was great. When does the content start?”
CHUCK:
Okay, we'll wrap up. We'll catch you all next week.
[This episode is sponsored by Mad Glory. You’ve been building software for a long time and sometimes it gets a little overwhelming; work piles up, hiring sucks, and it's hard to get projects out the door. Check out Mad Glory. They are a small shop with experience shipping big products. They're smart, dedicated, will augment your team, and work as hard as you do. Find them online at madglory.com or on Twitter at @madglory.]
[Hosting and bandwidth provided by The Blue Box Group. Check them out at bluebox.net]
[Bandwidth for this segment is provided by Cache Fly, the world’s fastest CDN. Deliver your content fast with Cache Fly. Visit cachefly.com to learn more.]