JS Party – Episode #17

AMA — BasicAttentionToken, Robotics, IDE's and Stuff

with Adam Stacoviak, Mikeal Rogers, and Rachel White

Guests

All Episodes

This is an AMA show with live questions from the #jsparty Slack channel. We cover everything from BasicAttentionToken, Robotics, Microsoft, IDE's, and other fun stuff.

Featuring

Sponsors

Hired – Get hired. It's free — in fact, they pay you to get hired. Our listeners get a double hiring bonus of $600.

Toptal – Freelance with top companies. Travel the world. Easily scale your team. Hire the top freelance software developers, designers, and finance experts. Email adam@changelog.com for a personal introduction.

SentryGet 30 days free when you sign up with the code jsparty. Error reporting and notifications for JavaScript apps and the rest of your stack. Start tracking errors for free. Support for React, Angular, Ember, Vue, Backbone, and Node frameworks like Express and Koa.

Notes & Links

Edit on GitHub

Transcript

Edit on GitHub

We're gonna do a different show today, which is we had some kerfuffles on scheduling, and we don't wanna miss the show, because we're all busy and we wanna keep it rolling... So ask us anything. if you're on Twitter, if you're on some sort of social platform, if you're right here in Slack, drop a note in there and I'm gonna do my best to ask Rachel and Mikeal some questions about Javascript, the web platform, where we're going, what we're doing...

Mikeal, maybe we can still talk about the ICO, which is unique... Is it the first of its kind, the Initial Coin Offering?

No, there's been other ICOs for the cryptocurrencies... This is just one that's actually kind of related to Javascript and the web, because it's an attention token that's gonna be in the Brave browser, that relates to your -- it's an alternative to advertising, and it does micropayments instead.

Can we mine it now?

I don't think you can mine it that way.

I didn't read the full thing... The headline seemed to me as if Brave was generating funding through rather than an IPO, an ICO.

Yeah, they did.

Is that what is happening?

So what they did was they created a bunch of these coins - I'm not sure how many in total - but they've released some of them. Other companies have done a very similar thing, where they wanna get a coin onto the market, so they mine a bunch of it, and then they say "Okay, we're gonna offer this set amount of this coin to the public", and then those go on the open market and people buy them. And now that those coins are in the open market, there's additional speculation and trading on top of it.

They made 35 million. I think the current market cap on the coins that went out is a little under 100 million... The people that bought them actually have tripled the value so far.

So is this becoming a way for people to go about raising funding in a different way, or is this unique to Brave or how they operate the browser?

It does a couple things - when you have certain types of these coins, you wanna get a bunch of value injected into the network, so you do a big public offering, and then you kind of bootstrap a bunch of value around it. Or you can give a bunch of these coins out and then get that money.

Now, the way that that's treated by the IRS is just straight up capital gains, so you're gonna get a pretty big tax penalty unless you do -- and I imagine that everybody who's raising more than a couple million dollars on these ICOs is probably doing this where they're filing some kind of company off-shore to avoid some of those tax penalties.

[00:04:03.14] So we want this to be in the pre-show, or somehow meld this into the ending production?

I thought we were live...

We're live! Okay, fine, we're live!

Yeah, let's just put that in.

Yeah, you can just edit it in --

We'll do it live!

We'll do it live! So listeners of this particular JS Party, it's a different type of show. Normally you never hear me; I'm just behind the scenes, hoping that everything goes well, and keeping the mice on the spinners, you know? Creating electricity, and stuff...

What does that mean?

You know, the mice race.

I was thinking fidget spinners. I thought this was like [unintelligible 00:04:39.12]

Yeah, me too... [laughter]

Well, sure, the mice are standing on the fidget spinners, and that's creating electromagnetism, which turns into electricity, powers the house...

Who does that? Is that a real thing?

Where do they do that at? They did that in Neighbors II... The movie. [laughter] Remember they were trying to take down the sorority and they pulled the power, and it kept going because they had all the minions in the other room riding unicycles, or whatever? Stationery bikes...

We definitely are keeping this in. This has to be in.

That's how we power the house, you know? So back to this unique thing - basic attention token... It's so foreign to me. Ethereum-based, we've done shows on this - I get it; I understand blockchain, I understand cryptocurrencies, I keep hearing more and more that they're coming of age, they're about to be mainstream, or they are mainstream and there's a small mainstream, who knows...? What's the state? Where are coin in general being used? What is the state of this cryptocurrency system?

The dark web... [laughter] I have no idea. I don't know anything about this. I know that libertarians like Bitcoin, and that's about it. [laughter]

Yeah, it depends on what you mean by that. So there's a bunch of different coins now... I think that the primary ones right now are probably Bitcoin, Ethereum and Litecoin...

Dogecoin...

Dogecoin I think is not a major player at this point...

I have 75,000. It'd better...

You have 75,000 Dogecoins? Those are probably worth something, actually...

No, it's not. It's worth like $20 maybe. It was the only one that compelled me to figure out how to do mining, and I was like "Cool!", and it's worth nothing.

Oh, you mined them... Okay. I mean, I've bought some of them... I think honestly if you're just out with friends and you want to transfer some money between people, it is surprisingly the easiest way to do that currently. If you just have -- what's the app called? Coinbase. If you just have Coinbase on your phone, you can just use your phones to transfer money, and it's almost instantaneous. Bitcoin takes like 10 minutes. It's actually kind of a better way to [unintelligible 00:07:20.08] money like that... And you're seeing more and more services set up support for accepting Bitcoin as currency... Bitcoin and some other currencies, as well.

What I was talking about before with -- if you pull it out in cash, you've made capital gains on that money, so there's a lot of incentive to just keep the money being exchanged for other value inside of the system, because it's not being treated as a currency, which is a weird thing to think about - by not treating it as a currency, you've actually inflated people's use of the currency in a way, because they don't want to pay the capital gains.

So what you're saying is when you pull it out -- you take it from...

You take it out in cash...

[00:08:02.06] Right, when you turn it into your denomination - USD, EUR, or whatever your currency is - you turn it into what we consider maybe real dollars, real cash... At that point you could be subject to capital gains?

Yes. This also translates if you transfer to other property and then sell that property.

Right, of course.

There actually is a company right now doing mortgages in Bitcoin, but if you buy that house, it's -- say you put $5 into Bitcoin really early on, and that's worth half a million dollars. So you buy a half a million dollar house with Bitcoin, with that mortgage, you're good until you sell that house. Then when you sell that house, you owe capital gains from the $5 that you initially put into the currency.

You defer it by buying property.

Yeah, you defer it by exchanging property. So the way that the SEC and the IRS looks at cryptocurrencies is that they are property; they are digital property that you own. They fall under the laws Beanie Babies, and things like that.

That makes sense. That's a good way to put it, because they're still coins, when you think about the name, the term - they're meant to signify currency of some sort; some sort of worth, some sort of value... But they're obviously not physical; you can't touch your Bitcoin. Maybe you could, if you're really lucky, but I don't know...

But they're just simply things you happen to take ownership in - Mikeal, you own yours, I own mine, Rachel you own yours - and once you exchange that value for something else, it translates. So it's like stock in a way too, because you buy it at a certain price, and it may be worth something worth, or potentially less.

Right, but stocks are regulated quite a bit differently and looked at quite a bit differently.

Sure, but the concept domain, that's what I mean by that. Not so much the full-on regulations of stocks, just more like the principle of "You buy it at a certain rate - let's say a dollar - and a month later it goes up and it's now 1,50." So the value could go up or it could go down based on when you came in.

This also happens to your currency in your pocket. There's inflation, there's currency exchanges, and how valuable your currency is when compared to other currencies... I've run into this a lot, because I have a stack of money from other countries, so that when I land in those countries, I can spend it... And this has not been a very good last five years to be holding currency not in dollars, so that kind of sucked.

Anyway, so for blockchains there's this whole side of things that's like currency speculation, and it's a lot of ostensibly gambling, like fun gambling, a lot of money flowing into it, and gambling on these exponential increases in the value of these digital coins. But the underlying technology can solve a lot of problems outside of just currency exchange, and outside of just things that we need a currency to do.

There's an element of transparency and provability without a centralized owner that is really important for a bunch of use cases. What Brave is going after with this basic attention token is essentially the ad market. If you've ever read a bunch about the advertising market, especially online, there's a huge amount of fraud, a huge amount of fake clicks... There's everything from click farms to people just generating crazy wild numbers for what has and has not happened on different services and what not. If you wanna try to solve that, you need something that is provable and has a lot of these elements of transparency and provability baked in... So what they're looking at is this basic attention token. This is a provable way to show that you spent some attention on something. That could be used to prove that you saw an advertisement or saw some content... Or what they're probably betting on a little bit more than that is you can prove that people spend time on a site, and then you can inject capital and money into where you spend your attention, and that can be doled out as micropayments to those sites.

[00:12:19.29] If you've used the Brave browser, they already have this feature baked in where you can do these micropayments. You can say "Look, I don't wanna deal with advertisements on website, I hate all that kind of stuff, but I do wanna support content creators, so I'm gonna pour $20/month into wherever I spend my time." What happens is that Brave tracks that in a way that is anonymized and protects your privacy, but it also allows them to dole out some of that to all these different places where you're spending your time.

That's pretty interesting.

That ends up being a lot more money, I think, for the users that put money into that system; if you're only putting in $5, the sites that you go to are going to end up making more money than they would from advertising on that. I mean, advertising - you can to reach hundreds of thousands of people in order to make a menial amount of money.

Yeah. In the upcoming JS Party... We're on that show now, but episode 15, which includes Kyle Simpson - he mentions something about where we place our value add, and we talk a bit about this subject... Not in particular, but how users spend their time on the web; the conversation was basically the chasm between native applications and web applications, and how we often put them together when maybe they should be divided because of things like bandwidth, and what not... Inherent costs that basically attain to bandwidth and the cost of bandwidth. People in the U.S. don't typically have that issue because we have unlimited everything, basically, but in other parts of the world there's metered access to internet, so the weight of things gets a lot more expensive... So that was a conversation on there.

Then also on Request For Commits - you probably remember this - with Brendan Eich, talking about that. He's the founder of Brave, so it would make sense to have this conversation with him back on that show. We talked a bit about the early days of founding the web, and he talked a bit about how it was all advertising-driven; I'm summarizing to some degree from my memory, but basically the history of browsers had this speckled history of advertising paying for a lot of things... And it's kind of interesting to see now where he's at, and this basic attention token being a thing where, like you just said, you can put $20 in and that money goes to where you spend your time on the internet.

Yeah. I mean, I think what he's really dealing with and he has had to confront pretty head on is that having this indirect market to found browsers and the web through advertising has also created a huge market for fraud and malware and a bunch of other stuff, and it's only gotten worse, and everything that we've tried to do to try to make it a little better hasn't really worked. Brave is pretty proactively tracking and blocking advertisements and just saying "No, we're gonna go with a different way to fund the web here and remove a lot of this malware."

A lot of people are using Patreon, mostly content creators, and what bums me out is seeing crazily enthusiastic content creators pointing to and basically begging their listeners or their audience, "Support Me!", and you go to their Patreon and they're getting $13/month. Nothing upsets me more than seeing -- sure, maybe it's amateur content, so to speak, and I say that loosely because it's not like mainstream media content, for example, like highly polished, 16-20 behind it... It's one person, two people maybe, but there's somebody who's out there doing something on the web that's of value to others, and they're essentially asking their audience to support it, and they go to that Patreon page and it's like $13/month. That's horrible. That's not working.

[00:16:20.16] I think that when you look at how to fund content -- and we look at those a lot when we're talking about how to fund open source and how to have a sustainability strategy for open source... But the world of content and art is as big and dynamic, and there's not one way to fund things, and there's not content that necessarily appeals to every way of funding. So it works really well for certain kinds of artists that have a really personal following, a small but dedicated following, I'd say.

I think that if you were making a couple million dollars a month on Patreon you would probably stop getting new people putting in money, regardless of how much the content [unintelligible 00:17:01.22]

Yeah, but $13 - that's horrible.

I know, but there's also a lot of people making a living on Patreon, as well.

It's true, there are.

And those people that are making $13, there may be a reason for that. There may be a perception that that person is already being rewarded in some other way, or other people are actually paying for that content... I've seen people on Patreon do this, where they make content and then the people that give them money on Patreon don't even get that content, they just buy it through iTunes, or something... When you have that kind of stuff going on, people are just less incentivized. So I think it's gonna work for some people and not for others.

To broaden it back out to blockchain in general, I think wherever you have transactions that you need to make transparent and you need to have some provability, there's a bunch of different use cases for that, and a bunch of different things that we can do there.

Of course, this being the tech industry, there's been a huge flood of money from venture capital and a lot of hype from everywhere that blockchain is the solution to everything, so if you have a startup, an idea, and then you add the word "blockchain" or "AI" to it, you will just get more money right now... So it's very overhyped, but there are a bunch of news things that we can do that we couldn't do before, and eventually those are the things that are really gonna shape new products and services.

Let's get off of blockchain for a while, let's move on...

Yeah. I'll end up by just saying my thought was that if this basic attention token is a chance to push the web in a way where your attention speaks for itself and pays for itself, so to speak, is a better direction of a model, hypothetically, than the beggar/"Will you support me?" model.

Break

[00:18:51.18] to [00:20:30.17]

We've got some robotics topics to talk about. Rachel, I understand that you're a purveyor of robotics, you like this stuff.

I dabble.

You dabble, and sometimes you might even have fun doing it... What do you think?

I saw the question that was asked... So the reason that I use Javascript in robotics is because I know Javascript; I don't know C. If I need to get into something that is a little bit more specific to C, I can work my way around it, but I can't write it from scratch.

Basically, the reason that I think Javascript is good for robotics and embedded hardware is because of the community that is involved that is available to the NodeBots community. The Johnny-Five site is amazing, the documentation is great...

When I say robotics too, I don't mean like very intense, giant things... This is just like hobbies-level stuff, so like small little -- there's sumo bots that can push each other out of circles, or play soccer... We're not changing the world, inventing anything that's going to revolutionize the way that modern machinery is made with Javascript robotics, I don't think, but I think that it's a really interesting way to help people that are wanting to learn how to write Node, and maybe they're just not grasping the way that it works with building a single-page application.

I really like the way that the tangibility of even just taking a breadboard with LEDs and hooking it up to an Arduino and being able to write Javascript you can get stuff to happen... Not to mention using LEDs for visualizing different types of loops is really a great way to help understand it. It helped me understand how that kind of stuff was done.

In terms of performance-based stuff, obviously C is gonna be faster than Node stuff, but I feel like all of the stuff that I've built hasn't really had any issues with the runtime, or any lag whenever I do whatever "action A triggers action B." The performance differences aren't really big enough to make a difference for at least the hobby-level stuff that I do with it.

And also I think that there's a little bit of a difference between IoT and robotics, right?

Yeah, definitely.

A lot of the IoT stuff - like yeah, you do have these use cases where you need it to be super low power, because it's gotta be on a little battery for a year, but with robotics you're gonna be pretty high-power anyway, because you're doing these pretty big movements and moving around heavy things, so that means they are gonna have a higher powered onboard device and you can run Node just as well as anything else that runs on that little embedded system.

It would seem to me too that going the route of C versus going the route of Javascript, one might be a higher/lower barrier to entry. You might have to have a lot of systems knowledge, maybe a lot of deeper knowledge about programming that C would require, whereas Javascript - you can sort of run that anywhere; it's a little bit easier to get involved, and dare I even say maybe a slightly larger, more welcoming community, so it's a little easier to find your place to fit in. That seems like a pretty standard thing to think about as well.

[00:24:15.07] Because I came from lower-level languages and I watched higher-level languages take over and get a lot more people using them than the lower-level languages, it's always hilarious to me when people from higher-level languages start to get into lower-level languages... Because they really ignore a lot of the things that higher-level languages do for you. It's just so easy to make mistakes in C; mistakes that will still be compiled and your program will still run, but will introduce a security vulnerability, or a memory leak... It's very hard to make good, reliable programs in C and C++, and that's why we built higher-order languages, so that you can stay within some extra boundaries that will make it not just easier to program, but also easier to not make mistakes.

Yeah, I feel like a lot of the libraries that allow people to get started with NodeBots take the mistake-making part of the process out of it. The mistakes that you're gonna make when you're doing it is more like -- they're going to be your wiring, then the programs that you're writing, because so much of the sensors and modules that you're using already have the code written. You can pretty much just like copy/paste a ton of it and you're ready to go, and then you just have to learn a little bit about electricity and how circuits work, and then you can start combining things to make a lot more dynamic stuff.

Can we rewind a bit and talk a bit about the chasm or the difference between learning Javascript and a single-page web application scenario, versus let's say robotics, where you mentioned interesting things around loops, and blinking lights... Why is it different? What's different about it?

For me it's a learning style thing. Some people are okay with grasping a concept, and some people just really need to visualize what they're doing in order to understand it.

For me, I'm a super visual learner, and I think that's why I was so taken to the Javascript robotics stuff, because I could -- I mean, I've been programming for almost half of my life, and I'm a s****y programmer; I don't know data structures, I don't understand those things... I just know what I know from repetition and building stuff.

It's just nice when you can touch something that you've built, versus just looking at -- I guess you could touch a computer screen, but it's a little bit different. I don't know...

I think a more interesting question is actually "What is similar about UI programming the browser to robotics in Javascript?", because I think there's actually more similarities than differences. And when you look at a lot of the languages that people have built specifically for IoT, they're taking a lot of these threading patterns that we have for -- basically, people have written for desktop programming and operating system programming, a lot of low-level stuff, and it's interesting that Javascript and the browser didn't go that direction; they went the direction of events. We talk a lot about asynchronous programming now, but just basic DOM events, like when you click on something, something happens. That's how robotics work, and that's how Javascript robotics work, and it's actually very similar.

I feel like UI people actually have an easier time on-boarding than people that are used to threaded C++ programming that try to move into this evented environment.

[00:27:59.14] It depends on the on-boarding, obviously. If you can set somebody up with good documentation, then yeah, that's good. I feel like even five years ago there was still not great documentation for a ton of front-end UI stuff... At least I didn't have a good time with it.

If you're getting into Javascript for robotics - or Javascript hardware stuff in general - there's a lot of libraries out there, everything in NPM; there's maybe even more embedded systems that support this. It's like the Atari 2600 days of computing, everybody's got their own specialized board...

You mess with a lot of these, Rachel. What do you recommend that people pick up as a first introductory set of hardware, and what libraries would you point them to?

I think that if you don't know anything about hardware at all and you're wanting to get started, the best thing that I would suggest is the Johnny-Five starter kit that comes with a Tessel. You can get it on SparkFun. The benefit of the Tessel versus an Arduino is -- the Arduino you're gonna have to flash with custom firmware, and if it's your first time using that kind of board, you might not necessarily know how to do that. But the Tessel just comes and it's ready to go, essentially. You just plug it into your computer, and you can either run the code from your machine the same way that you do with your Arduino and other boards... Or you can just push the code up to the Tessel, so it runs on the actual board, which is more similar to the boards that have embedded systems on them, which is really great. Plus, it's ready for Node out of the bat.

The projects that I think it gives you to build are -- there's like a little robot [unintelligible 00:29:52.24]. I honestly just get the kits now, because -- like, whenever you go to conferences and there's people giving stuff away for swag, I just break everything apart into individual components I can use later... But there's a whole bunch of documentation that comes with it that helps you get up and running.

The other libraries that you can use are -- Bryan Hughes has a library that allows you to use Javascript for the Raspberry Pi... I only recently started using a Raspberry Pi. The new model 3 makes it a lot easier to be able to use it without having to plug it into your router or SSH into it, because you can use something called PiBakery to start your card up... So it already has the Raspbian operating system on it, and then you can configure this thing called "VNC Viewer", which lets you essentially -- it's like a virtual machine on your computer that you're actually logged into the Raspberry Pi with, so you see the whole Linux operating system.

I actually just built this cool gallery out of a 32x32 LED matrix using a Raspberry Pi, and I'm running Node on the Pi, and I'm also running Node on a single-page app that's hosted on Azure. The way that it works is you -- so there's not a lot of good Node libraries for the LED matrix, so all I did was installed the C library that already works for displaying art on the matrix, and instead I have the Node application listening over the IoT hub on Azure, and it just runs the C shell commands whenever it gets the message to display art... Which is kind of hacky and cheating, but there's a lot of ways that you can jump in and use Node with a lot of things.

Those are the best hacks. I love that stuff!

[00:31:58.12] It's like, I kind of inadvertently built the world's hackiest Node library for displaying art on a LED matrix... So you can, too. What else do we have?

So the point of an "Ask us anything" show is people asking questions, but I guess Mikeal and I might have some questions, which we've already shared a few...

You can ask us questions not about Javascript as long as they're safe for work...

That's true, yeah.

We have many, many interests.

I'm taking a break from bread-making, so no bread-making questions.

I was just gonna say "Ask Mikeal about bread."

No... Gotta take a break from that. I can tell you all about ketosis, but I can't tell you about bread right now. [laughter]

There's a question about IDEs... So I've never used IDEs, I've always used straightforward editors, but I've always been a little bit jealous of some of the features that nice IDEs have. Eventually, I made my way to Visual Studio Code. Visual Studio Code is great because it is an editor, but it has a lot of the features that I've always wanted from IDEs... So I use Code now.

I also use Code, but I work at Microsoft, so...

Didn't you use it before you worked there?

No, I used Sublime Text. But honestly, it doesn't really feel that different. I use Visual Studio Code with a bunch of syntax plugins for Javascript, and Node debugging stuff... I'm on my Mac right now as I type this, so I can't even open -- well, I don't have it installed on here, because I just use this for the podcast. Wow, that was a weird noise.

It's really good... So Mikeal's looking for a new computer, right? [laughs] And he's like asking people "What should I get?" Well, he just wants a laptop. But the reason I bring this up is because he said it on Facebook, and some guy in his comments was like "Ugh, dev work on a Windows machine?", and just wanted to be like "Have you even tried?", because... I don't know, it's just so nice, especially with Git for -- I don't know how to say this word correctly... Ubuntu? The Bash for that on Windows is fantastic. I have it running inside of Hyper, which is great. My terminal and my code editor are beautiful, and they run great and they're fast.

Yeah, that was a weird comment, especially because -- I mean, we have statistics on this from NPM, but there are more Windows users of NPM and NodeJS than there are Mac users.

That's very surprising.

I think that they're a little bit less vocal on Twitter, but yeah, there's a lot of people that do development on Windows, a very huge amount. And one of the secrets to Node's growth, even early on, was having really quality Windows support. I don't think that people appreciate how different it is than, say, Python or Ruby, or a lot of these other languages. It's really first-class.

But before we get off of IDEs, I did wanna just -- I wanna get a list of your extensions, Rachel, because I've just found some new, interesting extensions that I'm really happy about. So you can put @installed into the extensions thing, and that will show you the ones you have installed.

I have the JS Standard Linter installed, I have NPM Intellisense, so that will actually do auto-completion for the NPM packages that you have. And obviously, the regular kind of Intellisense.

Also Search Node Modules I think is really cool. It searches your Node modules directory for autocompletion as well.

[00:36:08.27] I have this markdown preview one that's super nice, because I write a lot of documentation for the projects that I do, and it lets me preview it right in the Window, which is cool... I don't have to open it up or push it up before I check out what it looks like.

Yeah, what a pain to ship to GitHub or something like that just to get a preview of your markdown file... No, that's not how you do it.

How do I see what my settings are, Mikeal? [laughter] Or how do I see which extensions I have?

So when you click on that Extensions thing in the left side bar, @installed will show you your installed ones, if you put that in the search...

Another one that I just installed recently that I'm loving is called Version Lens. It's so webby and great. Basically, when you pull up your package JSON, it looks at all of the deps that you have, and on top of the dep it says if there's newer versions like within this range, if there's like a newer current version that you're not getting because of your package thing, and each of those are just links, and when you click them, it updates the version in your package JSON. It's super nice.

So I have a lot -- well, not a lot. Since I also do a bunch of styling stuff, I have Color Highlight, which whenever you type "hacks colors" in your browser, it shows you what the color is around it, which is kind of nice.

I thought that was default. I thought that was just on by default.

I don't think so. I have the Dracula Official Theme installed, because it's my favorite theme... It's so nice!

I didn't know that it's official... [laughter]

Well, it's because people try and use the name -- it's a really popular theme. It's really pretty, it's nice. I have an HTML Snippets one, which is similar to [unintelligible 00:38:00.29], and then I have like Sass in Python, and ESLint, and also Babel ES6, ES7 syntax coloring one... And that's it. I should probably delete all these and start new... But yeah, those are mine.

I actually talked to Zeno Rocha about some back-story on Dracula, which was pretty interesting.

Oh, cool.

Yeah, on episode 248 of the Changelog we talked to him about sort of like his open source lessons learned. His first introduction to open source was this jQuery boilerplate project - this was back in the day - and the very first pull request was one that deleted all of his code and said "Start again because it was crap", basically. So it was a horrible introduction to open source, basically.

We talked about that, and then finally we got to this scenario where he was talking about just his passion for making an editor look good. He came up with this theme, Dracula, and how it's just blown up since then. He started off with one, and now it's been transferred to everything, basically. Vim... Anything.

Yeah, if you go to the Dracula site, it tells you all of the different places you can get it.

Yeah, DraculaTheme.com is the URL, so if you're tracking that on a listener, if you're in the Slack - boom, there it is. That's a pretty interesting project, and it's funny that you did say "official", because there are many imitators, not often duplicators.

I also recently switched my font for programming to Operator Mono... Which is not cheap, but it's beautiful, and it's really easy on the eyes.

[00:40:00.00] Back to the somewhat of a surprise for developers on Windows to have an easy time - wasn't there a time though where it was harder for them? I know maybe in the Ruby space at least there was... And this is like late 2008, 2009 timeframe, 2006... It was not easy to get set up.

It really depends on the language that you write and what you need it to do. I've always had a Mac and a PC, and I've always programmed on both of them...

Easily, no problems?

Yeah, easily, no problem. I mean, maybe this stuff on my PC wasn't as attractive-looking and it was a little bit harder to keep dotfiles equal across operating systems, but in the past few years I haven't felt that way at all.

Also, I have the access to people that work on VS Code, so if I can't figure something out or if I want it to look better, I can message them and be like "Help, please."

What do you think has changed for Windows, the platform?

I think it's 100% Microsoft being more involved with open source. VS Code is completely open source; it's written in TypeScript, so it's really easy for people to make custom stuff for it. That's my opinion, but Mikeal might have a better one.

I think that there's a larger transformation at Microsoft where they're moving from a platform company to a product company again. Early, Microsoft made products. They made languages for other people's computers, they made spreadsheets and Word applications, and then at some point they gained the monopoly over the operating system and they started to just kind of get lazy with product and strong-arm everybody into just being on their platform.

Now that they've lost those monopolies in platform, they've turned everything around - Satya has really turned it all around to be a product company. And to be a product company, you have to make things that people love.

I'm [unintelligible 00:42:07.04] surprised by the things that I love from Microsoft. I use Outlook on iOS right now... It's great, actually.

Yeah, it's crazy. The fact that I'm using a Visual Studio editor still blows my mind. If you told 1999 Mikeal that that would happen and that they wouldn't be using Vim, he'd punch you in the face. [laughter]

So violent!

Oh, 1999 Mikeal had no scruples. Anyway... [laughter]

That's funny. I kind of feel the same way, because my transition to Mac came from Windows, obviously - which would make sense - and it was from a place where I just couldn't afford, and even today, I still can't afford the Mac machines; they're still crazy expensive. So it come from 1) an economic standpoint...

Surface Pros are not cheap. I mean...

I haven't compared the prices.

They're really nice hardware though, too. That's really surprising, I haven't seen Microsoft make hardware that good, ever. It's funny, because I have heard complains about the Surface Pros, but all of the complaints have been in software, or operating system things that people don't like about Windows. I haven't heard anyone, not a single person complain about hardware.

Well, that's the thing though -- I think Microsoft has sort of like kept this bad name or this bruise... They got punched in the face, as the 1999 Mikeal would have done - punched Microsoft in the face because it just wasn't adding up, and they were walking around with a fake black eye, or something like that, because it's not really there anymore; it's sort of done. [unintelligible 00:43:44.27] It's just not there anymore... So they've changed, but everyone keeps the previous opinion about them, even though it may not be warranted, like the person in the Facebook comment you mentioned.

[00:44:03.05] Well, I know that one of the things that people harp on Microsoft a lot of for is everyone's like "Blue Screen of Death! It's so horrible!" and people love to take pictures of stuff out in the wild that have the Blue Screen of Death on, and they can just be like "Ha-ha... Look at Microsoft!", except I don't think that people realize that the reason there's a Blue Screen of Death there is more often than not the reason because since they've made it so accessible for people to build their own custom stuff for Windows, the Blue Screen of Death is Windows as an operating system telling you that there is a problem, and it's usually because of software that you're using that wasn't built by Microsoft. So it's like doing you a favor...

Yeah... I mean, also, if there is a blue screen, I think that they stopped doing that like ten years ago in their operating system. So these dumb kiosks have 10-year-old operating system, of course they're awful, of course they wrote awful software on top of it...

Well, I've also gotten the kernel panic on a Mac before; it happened maybe a small handful of times my whole entire [unintelligible 00:45:11.14] but I've seen that, too.

Also, kernel panics on Linux are just part of using Linux. It's not like this is like a solved problem there.

Right. So what I hear you saying is that if you haven't in a while, revisit your opinion on Microsoft or Windows or any of their new devices out there, as a platform for developers.

I mean, obviously I'm gonna say yes, but...

Well, say it from the true heart of Rachel, versus the "I work for Microsoft" Rachel.

I mean, I don't bulls**t, so if it wasn't good, I wouldn't say try it.

Well, there you go.

And I know the people that are working on this stuff (the tools for the developers) are legitimately super into feedback and wanting to know what the community wants, and since there's repositories on GitHub for all this stuff, if there's something you don't like, make an issue; let it be known to the people that are working on it. They would much rather hear from you in official channels that read about somebody being like "Oh, I hate VS Code!" on Twitter or something, because that's not gonna help.

We actually linked out to something on the News Stack over the weekend in our Weekly e-mail about Microsoft's transition over these years, and we've kind of covered that to quite a degree. I can remember talking to Arunesh and a couple others at Node Interactive recently... And these are like ten-year veterans at Microsoft, they've been there for a while, enough to see the two different sides that others may assume might be there. The side (as you said before, Mikeal, and I think you said it too, Rachel) where their focus is on developers, their focus is on open source, their focus is on products versus a platform, and you can see that transition happening not only on the outside as a what we get from them, but also the transition on the inside from employees.

I remember Gaurav Seth saying "I've been there 11 years, and the last few years have been the best years ever." I don't wanna put words in his mouth, but he seemed to be coming from a place where "I may not have been here much longer if it didn't change." That seemed to be the sentiment, but he didn't say that though. But it was like "Microsoft has changed so much for me as a developer to make me enjoy my job, allowing me to do cool stuff as Chakra Core, and fun stuff with Node, and do stuff in the community, whereas before it was never like that."

[00:47:54.00] Yeah, I've heard that from a bunch of people. More questions!

System76 Lemur right now, talking more about hardware... That's from Peter Benjamin.

What is a System76 Lemur?

It's Linux laptops.

Oh, interesting. That Intel Core i7 is the chips that they use in the Surface Pro as well.

Okay, "If you go to any conference where MS has a presence, you definitely get that vibe." Oh, that's a comment, not a question. [laughter]

Yeah, there's not a question mark at the end.

Where's the question marks?

Alright everybody, you've gotta ask us more questions. I've gotta go in four minutes, so...

Oh, four minutes... Let's do random picks.

I'm going to a party in a 70-room gothic mansion.

Must be there on time. Must eat in advance...

Oh, I do need to eat in advance...

Makeup's gotta be perfect, on point.

Obviously. I hate the phrase "on point" so much.

Okay, not on point? What's your version of "on point"? Spectacular? Fantastic?

Rad, I don't know.

Okay, rad. Makeup's gotta be rad. I forgot we're back in the '80s again.

I'm always in the '80s.

I mean, I grew up in the '80s, so I wanna go back so bad. If I hear '80s music, call it a day.

Yeah... You know what, there was a question about server-side rendering earlier that Mikeal can answer, and then I'll leave... [laughter]

I don't do any server-side rendering, so I'm actually really bad at this. I think that's really an Alex question. We need to get Alex on to talk about that kind of stuff.

Oh, they wanted to know about -- where is Alex? Is he home yet? Probably not...

He's probably listening. On his drive...

Neither of us know anything about -- well, Mikeal probably knows something about server-side rendering. I don't...

How about we do two minutes of random picks? And Rachel, you can begin. What do you think?

My random pick is actually going to be a CFP that's open that people should apply to, because it seems neat, and it's in Tokyo! It's NodeFest Tokyo. Yeah... Apply, I don't know. What else?

I've been there, it's great. Everybody should go.

I've also been -- well, you've been to NodeFest Tokyo or you've been to Tokyo?

I've been to NodeFest Tokyo. I went to the first two or three, something like that.

It's one of the oldest Node conferences, actually.

I did not know that.

Yeah, it started the same year that I started NodeConf.

Wow...! Cool. I think the other thing -- I actually was looking at this cool procedural generation Subreddit where they just talk about procedural generation... Hold on, I'm gonna burp. I muted myself for the benefit of you all. So there's this library that I just linked in the channel called TwoLoud, that lets you do noise functions. There's like Perlin noise, Simplex noise and a bunch of other stuff, and it's really good for generating tile sets or any other kind of random procedural stuff that you need, and it makes canvas tiles... It's pretty cool.

Really cool.

And now I'm leaving.

Bye, Rachel.

Have a good weekend! Bye!

What about you, Mikeal?

Let me think... Okay, there is a project called LeafletJS. It's a pretty amazing Javascript library for doing everything you ever wanted to do with maps - embedding maps that work on mobile, and desktop, all the interactions, putting points in... All that cool stuff. There's this great company MapZen that's a sort of cheaper and slightly easier to use alternative to MapBox for embedding maps and interacting with them, and they use this library as their base, and then they provide a bunch of tiles and services for doing smart routing, and stuff.

[00:52:15.29] I've been building a little app in my spare time for fun with that library, and I was really impressed with how far along this LeafletJS thing is... It does literally everything. And for a task this huge you kind of have to be a big framework, but as far as big frameworks and big piles of code go, it's actually easy to use and not very obtuse.

Well, my pick will be something to tease up some future content for us. There was a blog post on the Heroku blog talking about the Rise of Kotlin. We just recorded an episode this week which will go out in about three weeks because we have a small backlog... And I'm pretty excited about this. It was a fun conversation -- my son's crying in the background, because it's time... [laughter] But the fun thing about Kotlin is it's very interesting in terms of how it's come about from a third-party product company, so to speak - it comes from JetBrains. We talked about IDEs earlier - they're like the experts of creating IDEs.

So rather than Kotlin being like Swift is to Apple, Kotlin is to Google - it's not that way; it's actually JetBrains, a third-party. So it's really interesting how this language came about, really interesting about how it's solving some interesting things on the JVM, and the power it's giving to Android developers to have an alternative to Java. It's a fun show, so... That is a good article. I'll link it up in the show notes to go and check out in prep for our show coming up on Kotlin.

Awesome. Alright, good stuff.

And with that, that is the Ask Me Anything Random Live Show of JS Party. This was probably the most random show we've done so far, so thanks for tuning in. For those in Slack, thanks for hanging out!

Changelog

Our transcripts are open source on GitHub. Improvements are welcome. 💚

0:00 / 0:00