la

MJS #023 Laurie Voss


My JS Story 023 Laurie Voss

This week we have another My JavaScript story. This week’s guest is Laurie Voss. Laurie has worked with NPM from the start and has been a vital piece to getting it off the ground. Hear how Laurie got interested in computers, how Laurie got started with NPM, as well as a few things about the newly released NPM 5.


How did you get into programming?

Laurie started by going into a computer camp, at the time Laurie hadn’t spent time around computers, and it wouldn’t be until the second time that he went to the computer camp that he would see a computer again. Laurie grew up in Trinidad where not many people could afford computers. He started making his first website in Angelfire using HTML before CSS became a thing.

How did you go from web development to hardcore Javascript?

Laurie had been writing JavaScript since it was invented. Laurie started a web development company in high school using JavaScript. Laurie met Issac while working at Yahoo and he introduced Laurie to Node which was a starting point to taking JavaScript more seriously for Laurie. When Node was ready in 2013, NPM Inc was on it’s way.

What do you do at NPM Inc?

IN the beginning of 2014, Laurie was doing a lot of the JavaScript and was the CTO. Laurie says that part of his strategy has always been to hire JavaScript developers that are better at writing JavaScript that he is. Making him the worst JavaScript programmer at NPM. Laurie’s main job was doing what was needed to get NPM happen, including talking to layers and the business side of things. There are many companies that don’t understand how open source works, and in many cases it leads to run ins with lawyers. Many times NPM acts as an umbrella for open source tools that aren’t able to fight overzealous corporations.

What do you think is your biggest contributions to NPM?

Laurie expresses that it has changed over the years. A year ago he would say that he would have to say it leans towards the piece of software that is the registry. It’s very scalable and has worked great for small scale up to very large scale. Laurie works hard to gather funds and help make NPM grow as well as be scalable. He says that he is very proud that he build something that let’s others build things.

How did you get involved?

Laurie has been with NPM since the beginning. He tells us how Issac had been running NPM on donated hardware in spare time while working with Node. NPM would break a lot and be down due to the borrowed equipment. They decided that they needed to create a business model around NPM to help it grow. Laurie had just finished working on a startup and knew how to get funding and got their first round in 2014.

How did you get to being profitable?

Laurie talks about making sure that their plan is in line with their customers. NPM could easily charge for many parts of NPM but they would rather charge for things that make sense to charge, so in this case the private packages. Enough people are using the private package to getting NPM to profitability. Laurie says that even if money stopped coming in they would have to git rid of a few employees but would be able to keep a small team and sustain the NPM registry, but would never build anything new. It’s always between being profitable or using money to build new things.

What are you working on now?

NPM 5 was just released and it’s much faster, five times faster. Laurie talks about being excited about the team and what they are putting into it. Things like making deployments easier. Many developers use NPM to put code together as well as to deploy it. If you didn’t have a lock file, it’s possible that it would change. But the lock file can take a long time, and you already know what needs to go there so they are adding npm store and npm fetch making deploys much faster. Additionally they will be adding a feature called insights. They are able to see information about different users packages, security information, performance information, etc. They can use that information to help developers with suggestions based off of data gathered by what other people are doing. Charles adds that it would be great for coming up with topics for the podcast.

Anything else?

Laurie reminds everyone about NPM Organizations as well as NPM Enterprise. NPM Organizations is a way to organize packaging as well as teams of developers and helps you to collaborate. NPM Enterprise allows for single sign on support, license auditing, and features that corporations care about.


Picks

Laurie

Zite and NextJS
Slides.com

Charles

VMWorld
Tweet or email if you’re looking at resources for learning VR AI or Iot


Links

Twitter
NPM Organizations
NPM Enterprise





la

JSJ 268 Building Microsoft Office Extensions with JavaScript with Tristan Davis and Sean Laberee

JSJ 268 Building Microsoft Office Extensions with Javascript with Tristan Davis and Sean Laberee

This episode is live at the Microsoft Build 2017 with Charles Max Wood and AJ O’Neal. We have Tristan Davis and Sean Laberee from the Office Team at Microsoft. Tune in and learn more about what’s new with Microsoft Office Extensions!

[00:01:25] – Introduction to Tristan Davis and Sean Laberee

Tristan Davis and Sean Laberee are Program Managers on the Microsoft Office team, focused on Extensibility.

Questions for Tristan and Sean

[00:01:45] – Extending Office functionality with Javascript

Office isn’t just an application on Windows that runs on your PC. It is running on iPhone, iPad, Android tablet, and apps on the browser with Office Online. The team needs a new platform, add-ins, which allow you to build apps that run across all places. It’s HTML and Javascript. HTML for all the UI and a series of Javascript module calls for the document properties. Sometimes we call it OfficeJS.

[00:03:20] – This works on any version of Office?

It works on Office on Windows, Mac, Online and iPad.

[00:03:55] – HTML and CSS suck on mobile?

There are things that you’re going to want to do when you know you’re running on a mobile device. If you look at an add-in running on Outlook for iPhone, the developer does a lot of things to make that feel like part of the iPhone UI. Tristan believes that you could build a great add-in for Office using HTML and JavaScript.

[00:05:20] – Are these apps written with JavaScript or you have a Native with WebView?

Office itself is Native. All of it is Native code but the platform is very much web. The main piece of it is pointing at the URL. Just go load that URL. And then, you can also call functions in your JavaScript.

[00:06:35] – Why would you do this? How does it work?

The add-in platform is a way to help developers turn Word, Excel and PowerPoint into the apps that actually solve user’s business problems. The team will give you the tools with HTML and JavaScript to go and pop into the Word UI and the API’s that let you go manipulate the paragraph and texts inside of Word. Or in Excel, you might want to create custom formulas or visualizations. The team also let people use D3 to generate their own Excel charts.

And developers want to extend Office because it’s where a lot of business workers spend their days 0 in Outlook, Teams, Word, Excel.

[00:10:00] – How did this get delivered to them?

There are 2 ways to get this delivered. One, there’s an Office Store. Second, if you go into Word, Excel, and PowerPoint, there’s a store button and you can see tons of integrations with partners.

For enterprises, IT can deploy add-ins to the users’ desktops without having stress about deploying MSI’s and other software deployments that the web completely rids off. The add-ins make a whole lot of pain the past completely go away.

[00:11:00] – Everybody in the company can use a particular plug-in by distributing it with Office?

That’s right. You can go to Office 365 add-in experience. Here’s the add-in and you can to specific people or everyone who’s part of a group.

For the developer’s perspective, if you have the add-in deployed to your client, you could actually push updates to the web service and your users get the updates instantly. It’s a lot faster turn-around model.

[00:14:20] – What about conversations or bot integrations?

There’s the idea of connectors at Teams. You can subscribe to this web book and it’ll publish JSON. When the JSON is received, a new conversation inside of Teams or Outlook will be created. For example, every time someone posts on Stack Overflow with one of the tags that team cares about, it posts on Outlook.

It’s a great way to bring all the stuff. Rather than have 20 different apps that are shooting 20 different sets of notifications, it’s just all conversations in email, making do all the standard email things.

And in the connector case, it’s a push model. The user could choose what notifications they want.

You’d also learn things like bots. You can have bots in Teams and Skype. The users can interact with them with their natural language.

[00:18:40] – How about authentication?

As long as you’re signed into Office, you can call JavaScript API to give you an identity token for the sign in user and it will hand you a JWT back. That’s coming from Azure Active Directory or from whatever customer directory service. That’s standard.

If you want to do more, you can take that identity token and you can exchange that for a token that can call Microsoft graph. This app wants to get access to phone, are you okay with that? Assuming the user says yes, the user gets a token that can go and grab whatever data he wants from the back-end.

[00:20:00] – Where does it store the token?

That’s up to the developer to decide how they want to handle that but there are facilities that make sure you can pop up a dialog box and you can go to the LO-flow. You could theoretically cache it in the browser or a cookie. Or whatever people think is more appropriate for the scenario.

[00:20:55] – What does the API actually look like from JavaScript?

If you’re familiar with Excel UI, you can look at Excel API. It’s workbook.worksheets.getItem() and you can pass the name of the worksheet. It can also pass the index of the worksheet.

[00:22:30] – What’s the process of getting setup?

There’s a variety of options. You can download Office, write XML manifest, and take a sample, and then, side loads it into Office. You can also do that through web apps. There’s no install required because you can go work against Office Online. In the Insert menu, there’s a way to configure your add-ins. There’s upload a manifest there and you can just upload the XML. That’s going to work against whatever web server you have set up.

So it’s either on your local machine or up in the cloud. It’s as much as like regular web development. Just bring your own tools.

[00:24:15] – How do you protect me as a plug-in developer?

There’s an access add-in that will ask your permission to access, say, a document. Assume, they say yes, pipes are opened and they can just go talk to those things. But the team also tries to sandbox it by iframes. It’s not one page that has everybody’s plug-ins intermingle that people can pole at other people’s stuff.

[00:27:20] – How do you support backward compatibility?

There are cases where we change the behavior of the API. Every API is gated by requirement set. So if a developer needs access to a requirement set, he gets an aggregate instead of API’s that he can work with but it isn’t fixed forever.

But it’s not at that point yet where we end up to remove things completely. In Office JS, we’ve talked about API’s as one JavaScript library but really, it’s a bootstrap that brings in a bunch of other pieces that you need.

[00:30:00] – How does that work on mobile? Do they have to approve download for all components?

You can download components by using the browser that the operating system gives. It’s another one of the virtues of being based on the web. Every platform that has a web browser can have JavaScript execution run-time. It allows for the way that their app guidelines are written.

[00:33:15] – How about testing?

It’s a place where there’s still have work to do. There’s a bunch of open-source projects that partners have started to do that. What they’ve done is they’ve built a testing library. Whatever the mock is, it's just a thing on Github. It is open-source friendly. So the team could be able to contribute to it. “Here’s an interesting test case for this API. I want to make sure that it behaves like this.

[00:35:50] – Could you write it with any version for JavaScript e.g. TypeScript?

A Huge chunk of the team is big TypeScript fans. They’ve done a lot of work to make sure that TypeScript experience is excellence.

Type is basically a collection of typing files for TypeScript. There’s a runtime process that parses your TypeScript, gives you feedback on your code, and checks for errors. You can also run it in the background.

There’s an add-in called Script Lab. Script Lab is literally, you hit the code button and you get a web IDE right there. You can go start typing JavaScript code, play with API’s, and uses TypeScript by default. It’ll just actually load your code in the browser, executes, and you can start watching.

[00:39:25] – Are there any limitations on which JavaScript libraries you can pull in?

There a no limitations in place right now. There are partners that use Angular. There are partners that are big React fans. If you’re a web dev, you can bring whatever preferences around frameworks, around tools, around TypeScript versus JavaScript.

[00:45:20] – What’s the craziest thing you’ve seen done with this API?

Battleship was pretty cool. There’s also Star Wars entering credits theme for PowerPoint.

[00:46:40] – If a developer is building a plug-in and get paid for it, does Microsoft take credit for that?

There are 2 ways that folks can do it. You can do paid add-ins to the store. Either you do the standard perpetual 99 cents or you can do subscriptions, where it’s $2.99/month. Tristan encourages that model because integrations are just a piece of some larger piece of software.

But Microsoft is not in the business of trying to get you to pay me a little bit of 10 cents a dollar. It’s really in the business of making sure that you can integrate with Office as quickly as possibly can.

When the users go to the store, they can use the same Microsoft account that you use to buy Xbox games or movies in the Xbox, Windows apps in the Windows store.

[00:52:00] – The App Model

If folks are interested in the app model, they should go to dev.office.com to learn more about it because that’s where all the documentation is. Check out our Github. Right there in the open, there’s the spec. Literally, the engineers who are coding the product are reading the same marked-down files in the same repo that you, as a developer, can come and look at. And you can comment. You can add issues like you could have a dialogue with that PM. Under the OfficeDev, you’ll find a tunnel repository that contains samples. Our docs are there.

Picks

AJ O'Neal

  • Lithium

Charles Max Wood

Tristan Davis

Sean Laberee




la

JSJ 271: SharePoint Extensions in JavaScript with Mike Ammerlaan and Vesa Juvonen

JSJ 271: SharePoint Extensions in JavaScript with Mike Ammerlaan and Vesa Juvonen

This episode is a live episode from Microsoft Build where AJ O'Neal and Charles Max Wood interview Mike Ammerlaan and Vesa Juvonent about building extensions for SharePoint with JavaScript.

[00:01:28] Mike Ammerlaan introduction
Mike has worked at Microsoft for a long time on multiple Microsoft products and projects. He's currently on the Office Ecosystem Marketing Team.

[00:01:52] Vesa Juvonen introduction
Ves a is Senior Program Manager for the SharePoint Splat team. He's been with Microsoft for about 11 years and manages the community and documentation for the SharePoint framework.

[00:02:18] What is the SharePoint Framework?
This is how you write SharePoint extensions with JavaScript. SharePoint has changed. It now works with common modern development tools and web development techniques. SharePoint consolodates the extension effort

[00:03:32] What is SharePoint?
File sharing, team sites, communication points for teams. Part of Office 365. You use Web Parts to add functionality to SharePoint. Web Parts provide functionality like widgets and are scoped to a team, group, or set of users. It's usually hosted on premises, but you can also use it with Office 365 as a hosted solution.

[00:05:56] What extensions can you build for SharePoint?
You can build widgets for your front page or intranet. You can also add user management or data management or document management.

Examples:

  • Dashboards
  • Mini Applications
  • Scheduling and Time Tracking
  • Document Storage
  • Source code repositories

[00:07:39] What is WebDAV and how does it relate?
WebDAV is a protocol for accessing documents and SharePoint supports it among other protocols for managing documents.

[00:08:36] Do I have to build front-end and back-end components to get full functionality?
You can build the front-end UI with Angular and other frameworks. And then build a service in Azure on the backend. The backend systems can then access Line of Business systems or other data systems.

It really does take multiple skill sets to build extensions for SharePoint.

[00:11:10] SharePoint on Mobile
There is a mobile web app and the Web Parts work through the mobile application. You can also use any browser to connect to the application.

[00:12:08] Building extensions with standard Angular or React component libraries
There are standard Yeoman templates. You can also pull in the components through React or Angular just like what Microsoft does.

Newer Angular versions are designed for Single Page Apps and SharePoint isn't necessarily set up to work that way. The Web Parts are isolated from each other and Angular requires some workarounds.

[00:14:30] Getting around sandboxing
Google and Microsoft are talking to each other to see how to work around this when there are multiple sandboxed applications that can't talk to each other in very simple ways.

[00:15:39] Application library or naming collisions if my UI uses different versions or clobber page wide settings
There are guides for a lot of this. React does a bunch of the isolation work.

Addons are iframed in and an API token is given to grant access to the data and APIs.

Microsoft also reviews and approves plugins.

[00:18:30] How do you get started and make money at this?
Look at the SharePoint store. You can build things through websites and pages and offer the plugins through the store.

You can request a SharePoint tenant installation from the Microsoft Dev Tools for free. Then you can build into the tenant site. The rest of the tools are available on npm.

SharePoint Developer Tools

[00:22:13] Automated testing for SharePoint extensions
Unit testing is built in for JavaScript. Testing the UI's require you to sign into Office 365. There are people doing it, though.

[00:22:54] Building internal-only extensions
SharePoint is an enterprise tool, so a lot of enterprises may not want to install extensions from the store. You can definitely build and install private plugins for SharePoint setups. They also have their own backend systems that will require custom development.

[00:25:50] Office 365, SharePoint, and OneDrive
Office 365 is used by people across many different sized organizations and SharePoint is much more enterprise. Office 365 tools store files and information in SharePoint.

What about OneDrive versus Sharepoint? OneDrive is focused for one person. SharePoint is focused around a team. But they have the same APIs and use the same technology stack.

[00:29:05] The history and future of SharePoint
It started out on premises and has moved to the cloud. The SharePoint team is working to keep it available and useful in the modern cloud based era.

[00:30:25] What does the API footprint look like?
It spans modifying lists, data objects, attributes, items in a list, put Web Parts on a page, modify the experience, and manage and modify access, users, and documents. SharePoint is a way of building a way of conveying information.

SharePoint is layers of data and scopes.

[00:35:26] Tutorials and Open Source
dev.office.com
The Sharepoint framework is not open source yet, but they're working on that. They also need to open source the Yeoman templates.
Open source samples are available at github.com/sharepoint.

Picks

Charles Max Wood

  • BlueTick
  • Zapier
  • ScheduleOnce
  • Moo.com
  • Advice: Take the time to go talk to people.
    Vesa adds that you should go to a session that's on something completely outside your experience.

AJ O'Neal

Mike Ammerlaan

Vesa Juvonen

  • Family

A big thanks to Microsoft, DotNetRocks, and Build!




la

JSJ 277: Dojo 2 with Dylan Schiemann and Kitson Kelly

JSJ 277: Dojo 2 with Dylan Schiemann and Kitson Kelly

This episode of JavaScript Jabber features panelists Aimee Knight, Cory House, and Charles Max Wood. They talk with Dylan Schiemann and Kitson Kelly about Dojo 2.

[00:02:03] Introduction to Dylan Schiemann

Dylan is the CEO at Sitepen and co-founder of the Dojo Toolkit.

[00:02:22] Introduction to Kitson 

Kitson is the CTO at Sitepen and project lead for Dojo 2.

[00:02:43] Elevator Pitch for Dojo

Dojo 1 has been around forever. Started back in 2004 as a way to solve the challenge of "I want to build something cool in a browser." Promises and web components were inspired by or created by Dojo. It's been a huge influence on the web development community.

Dojo 2 is a ground up re-write with ES 2015, TypeScript and modern API's. It's a modernized framework for Enterprise applications.

[00:04:29] How is Dojo different from other frameworks?

There's a spectrum: small libraries like React with an ecosystem and community of things you add to it to Angular which is closer to the MV* framework with bi-directional data binding. Vue lands somewhere in the middle. Dojo 2 is also somewhere in the middle as well. It's written in TypeScript and has embraced the TypeScript experience.

[00:06:00] Did the Angular 2 move influence the Dojo 2 development and vice-versa?

Dojo 2 had moved to TypeScript and 2 days later Angular announced that they were going to TypeScript. Angular also moved very quickly through their BETA phase, which caused some challenges for the Angular community.

With Dojo 2, they didn't start the public discussion and BETA until they knew much better what was and wasn't going to change. They've also been talking about Dojo 2 for 6 or 7 years.

The update was held up by adoption of ES6 and other technologies.

Dojo 1 was also responsible for a lot of the low-level underpinning that Angular didn't have to innovate on. Dojo 2 was built around a mature understanding of how web applications are built now.

People doing Enterprise need a little more help and assistance from their framework. Dojo provides a much more feature rich set of capabilities.

Angular could have pushed much more of TypeScript's power through to the developer experience. Dojo much more fully adopts it.

It's also easier if all of your packages have the same version number.

Call out to Angular 4 vs Angular 2.

[00:12:44] AMD Modules

Why use AMD instead of ES6 modules?

You can use both. Dojo 2 was involved in the creation of UMD. James Burke created UMD while working on Dojo.

ES6 modules and module loading systems weren't entirely baked when Dojo 2 started to reach maturity, so they went with UMD. It's only been a few months since Safari implemented the ES6 module system. Firefox and friends are still playing catchup.

The Dojo CLI build tool uses webpack, so it's mostly invisible at this point.

So, at this point, should I be using UMD modules? or ES6? Is there an advantage to using AMD?

With TypeScript you'd use ES6 modules, but UMD modules can be loaded on the fly.

[00:16:00] Are you using Grunt?

Internally, for tasks we use Grunt. But for users, we have a CLI tool that wraps around Webpack.

For package builds and CI, Grunt is used.

[00:18:30] What is the focus on Enterprise all about?

There are a lot of different challenges and complexities to building Enterprise apps. Dojo was the first framework with internationalization, large data grids, SVG charts, etc. Dojo has spend a long time getting this right. Many other systems don't handle all the edge cases.

Internationalization in Angular 2 or 4 seems unfinished.

Most Dojo users are building for enterprises like banks and using the features that handle large amounts of data and handle those use cases better.

[00:21:05] If most application frameworks have the features you listed, is there a set of problems it excels at?

The Dojo team had a hard look at whether there was a need for their framework since many frameworks allow you to build great applications. Do we want to invest into something like this?

React has internationalization libraries. But you'll spend a lot of time deciding which library to use and how well it'll integrate with everything else. A tradeoff in decision fatigue.

In the Enterprise, development isn't sexy. It's necessary and wants to use boring but reliable technology. They like to throw bodies at a problem and that requires reliable frameworks with easily understood decision points.

Producing code right is a strong case for TypeScript and they pull that through to the end user.

Many frameworks start solving a small set of problems, become popular, and then bolt on what they need to solve everything else...

Dojo tried to make sure it had the entire package in a clear, easy to use way.

You can build great apps with most of the big frameworks out there. Dojo has been doing this for long enough that they know where to optimize for maintainability and performance.

[00:29:00] Where is Dojo's sweet spot? 

The Sitepen Blog series on picking a framework

The biggest reason for using Dojo over the years is the data grid component.

They also claim to have the best TypeScript web development experience.

You may also want a component based system with the composition hassles of React.

The composability of components where one team may write components that another uses is a big thing in Dojo where one person doesn't know the entire app you're working on.

Theming systems is another selling point for Dojo.

[00:34:10] Ending the framework wars

Try Dojo out and try out the grid component and then export it to your Angular or React app.

There are a lot of frameworks out there that do a great job for the people who use them. The focus is on how to build applications better, rather than beating out the competition.

Sitepen has build apps with Dojo 2, Angular, React, Dojo + Redux, etc.

[00:39:01] The Virtual DOM used by Dojo

2 years ago or so they were looking for a Virtual DOM library that was small and written in TypeScript. They settled on Maquette.

The more you deal with the DOM directly, the more complex your components and libraries become.

Makes things simpler for cases like server side rendering getting fleshed out in BETA 3.

It also allows you to move toward something like React Native and WebVR components that aren't coupled to the DOM.

They moved away from RxJS because they only wanted observables and shimmed in (or polyfilled) the ES-Next implementation instead of getting the rest of the RxJS  that they're not using.

[00:46:40] What's coming next?

They're finishing Dojo 2. They're polishing the system for build UI components and architecture and structuring the app. They plan to release before the end of the year.

They're also wrapping up development on the Data Grid, which only renders what shows on the screen plus a little instead of millions of rows.

[00:49:08] Testing

They've got intern.

It pulls together unit testing, functional testing, continuous integration hooks, accessibility testing, etc.

It's rewritten in TypeScript to take advantage of modern JavaScript.

The Dojo CLI uses intern as the default test framework.

Kitson build the test-extras library to help with Dojo testing with intern.

Dojo Links

Picks

Cory

Aimee

Chuck

Dylan

Kitson

 




la

MJS #033 Dylan Schiemann

MJS 033: Dylan Schiemann

Today's episode is a My JavaScript Story with Dylan Schiemann. Dylan talked about his contributions to the JavaScript community to what JavaScript is back in 2004. Listen to learn more about Dylan!

[01:10] – Introduction to Dylan Schiemann

Dylan was on episode 62 of JavaScript Jabber, which was about 4 years ago. We had him on to talk about the Dojo Toolkit.

[02:00] – How did you get into programming?

When Dylan was 7 or 8 years old, he and his father took basic programming class together. In Junior high, probably mid-1980’s, he received his first Commodore 64 computer. He picked up the Programmer’s Reference Guide, toppled on Assembly, and tried to write data to a tape drive. It got updated to a floppy drive. And then in high school, he took some Pascal classes. He learned the basics - ranging from BASIC, Pascal, and to Assembly.

[03:00] – How did you get into JavaScript?

As an undergraduate, Dylan studied Chemistry and Mathematics. He did some basic HTML and discovered the web roughly when he was a junior year in college. And then, he went to graduate school and studied Physical Chemistry at UCLA. He was studying the topology and reality of quasi-two-dimensional phone. If you imagine a bunch of beer bubbles at the top of a glass, and you spin it around really quickly, you watch how the bubbles rearrange as force is applied to it. He wanted to put his experiments on the web so he started learning this new language that had just been invented called JavaScript. So, he dropped out of graduate school a few years later. Eight years after that point in time, it was possible to show his experiments with Dojo and SVG.

[04:25] – How did you get into Dojo and the other technologies?

SitePen

Right after grad school, Dylan helped start a company called SitePen. That let him really learn how JavaScript works. He started doing some consulting work. And he started working with Alex Russell, who had a project called netWindows at the time, which is a predecessor to any JavaScript framework that most people have worked with.

Dojo

Dylan got together and decided to create a next generation version of the HTML toolkit, which ended up becoming Dojo back in 2004. Things that they created back then are now part of the language - asynchronous patterns such as Promises, or even modules, widgets, which led to the web components pack. Over the years, they’ve built on that and done various utilities for testing and optimizing applications.

[06:20] – Ideas that stood the test of time

A lot of the things that Dylan and his team did in Dojo were on the right path but first versions ended up iterating before they’ve met their way into the language. Other things are timing. They were there very early and but to tell people in 2005 and 2006 that you need to architect the front-end application met some confusion of why you would want to do that. According to him, they never created Dojo to say that they want to create the world’s leading framework.

[07:45] – JavaScript

Dylan no longer answers the question of, “Oh, JavaScript, you mean, Java?”

The expectations of 2004 were the hope of making something that might work in a browser. The expectation today is we are competing against every platform and trying to create the best possible software in the world, and do it in a way that’s distributable everywhere in the browser. The capabilities have grown. There are audio, video and real-time capabilities. They were ways to do those things but they were brutal and fragile. And now, we have real engineering solutions to many of those things but there are still going to be ways to do this. There were few people who are interested in this and maybe this wasn’t even their day job. But now, literally hundreds and thousands of engineers who write code in JavaScript every day.

Picks

Dylan Schiemann

Charles Max Wood




la

MJS 045: Gant LaBorde

Panel: 

Charles Max Wood

Guest: Gant LaBorde

This week on My JavaScript Story, Charles speaks with Gant LaBorde. Gant is a regular in React Native Radio of Dev Chat TV. Gant works for Infinite Red and works with Ignite, a toolkit/framework for React Native. Infinite Red is a mobile app consulting company.

Gant talks about his journey in programming and working in the development world. Gant describes his early introduction to programming through the fascination of home computers and friends. Gant talks about his experience in learning  Javascript, PHP, Data Base, Desktop apps, and much more. Lastly, Gant talks about his contributions to React Native, and other platforms, and his current projects.

In particular, we dive pretty deep on:

  • How did you get into programming?
  • Got into programming by help his dad with technology and computers
  • Started his intro into programming through a friend programming on their home computer
  • Basic
  • AOL world - Visual Basic
  • Programming
  • Backend web
  • ASP
  • PHP
  • Javascript talk
  • Typescript talk
  • Cardboard talk
  • How did you get into React Native?
  • Ruby Motion
  • Building the Story
  • How does React Native allow you to build the story?
  • Components and structures
  • Reactotron 
  • What are you working on now?
  • Out of sync Yarn files
  • and much, much more!

Links: 

Picks

Gant

Charles




la

JSJ 298: Angular, Vue and TypeScript with John Papa

Panel: 

Charles Max Wood

Cory House

Joe Eames

Aimee Knight

Special Guests: John Papa

In this episode, JavaScript Jabber panelist speak with John Papa. John has been doing web programming for over twenty years on multiple platforms and has been contributing to the developer communities through conferences, authoring books, videos and courses on Pluralsight.

John is on the show to discuss an articles he wrote on A Look at Angular Along Side Vue, and another article on Vue.js  with TypeScript. John talks about the new features with the different versions of Angular technologies, anxiety in the different features, comparisons between the technologies and use case with Angular.

In particular, we dive pretty deep on:

  • A look at Angular Along Side Vue - Article
  • Angular 5, Amber,Vue,  React, Angular
  • Angular 2 - different features
  • CLI
  • Spell Webpack
  • Comparisons - Why the anxiety?
  • Opinions of Angular and sprinkling in other technologies
  • Vue is the easy to use with Angular
  • Are there breakpoints with the uses case?
  • Choosing technologies
  • Talk about working with Vue and Angular
  • DSL - Domain Specific Language
  • Vue and 3rd party libraries
  • Talk about Vue working with TypeScript
  • Vue.js  with TypeScript
  • Vue with TypeScript looks similar to Angular
  • Vetur
  • What does 2018 have in store for Angular?
  • Native apps and web functionality
  • And much more!

Links:

Picks:

Corey

Charles

Aimee

Joe

John




la

JSJ 301: CSS Grids: The Future of Frontend Layout with Dave Geddes

Panel: 

Charles Max Wood

Aimee Knight

Cory House

AJ O'Neal

Joe Eames

Aaron Frost

Special Guests: Dave Geddes

In this episode, the JavaScript Jabber panelists talk with Dave Geddes about CSS Grids. Dave quit his job about a year ago and has been living the entrepreneur and programmer life since then. Now, he builds mastery games to help people learn CSS. Dave discusses the differences between Flexbox and CSS Grid and how the games that he creates can help people learn CSS Grid in a fun and interactive way.

In particular, we dive pretty deep on:

  • CSS Mastery games
  • FlexboxZombies.com
  • GridCritters.com
  • Uses spaced repetition and delayed recall to learn
  • CSS Grid
  • Flexbox
  • CSS Grid as the cake and Flexbox as the frosting
  • Edge spec
  • What Flexbox can do
  • Sub-Grids
  • Geddski.com
  • Nesting Grids
  • Old Grid vs New Grid layout
  • Why would you move from Flexbox to CSS Grid?
  • CSS Grid tools
  • GridByExample.com
  • Education and Gamification
  • Pick a UI that interests you
  • For a discount on Grid Critters: enter JS Jabber for 20% off
  • And much, much more!

Links:

Picks:

Charles

Aimee

Cory

AJ

Joe

Aaron

Dave




la

MJS 053: Quincy Larson

Panel: Charles Max Wood

Guest: Quincy Larson

This week on My JavaScript Story, Charles speaks with Quincy Larson. Quincy created Free Code Camp, whose goal is to build a huge community of people who will then contribute to the project so that they can help more people learn code for free. Quincy first got into programming when he wanted to find a way to get teachers out from behind the computer and into the classrooms. This revealed to him how powerful technology was and really got him interested in learning more code. He feels very strongly about the importance of accessibility and strived to make his camp as accessible as he could so he could reach the most people with it. 

In particular, we dive pretty deep on:

  • Free Code Camp
  • How did you first get into programming?
  • Previously a school director and teacher
  • AutoHotkey
  • How did you get into JavaScript?
  • Focused on the problem of learning the code
  • Free Code Camp was his main focus as a programmer
  • The importance of accessibility
  • Free Code Camp curriculum
  • New update launching soon
  • Build projects in order to get a certificate
  • 6 certificates in total
  • What is the work breakdown with Free Code Camp?
  • Editorial staff now
  • Free Code Camp YouTube Channel
  • Writes on Medium
  • Loves the fact that he gets to help others and positively affect their lives
  • What else are you working on now?
  • Beta.freeCodeCamp.org
  • Expanding Free Code Camp Directory
  • And much, much more!

Links:

Picks

Charles

Quincy

  • The state of machine learning in JavaScript
  • Tensor Fire




la

JSJ 316: Visual Studio Code with Rachel MacFarlane and Matt Bierner LIVE at Microsoft Build

Panel:

  • Charles Max Wood

Special Guests: Rachel MacFarlane and Matt Bierner

In this episode, the JavaScript Jabber panelists discuss Visual Studio Code with Rachel MacFarlane and Matt Bierner, who are both developers on Visual Studio Code. They talk about what the workflow at Visual Studio Code looks like, what people can look forward to coming out soon,  and how people can follow along the VS Code improvements on GitHub and Twitter. They also touch on their favorite extensions, like the Docker extension and the Azure extension and their favorite VS Code features.

In particular, we dive pretty deep on:

  • Rachel and Matt intro
  • Month to month workflow of Visual Studio Code
  • VS Code JavaScript, TypeScript, and Mark Down support
  • Working on GitHub and within the community
  • Check out new features incrementally with insiders
  • Community driven work
  • What is coming out in Visual Studio Code?
  • GitHub helps to determine what they work on
  • Working on Grid View
  • Improved settings UI
  • Highlighting unused variables in your code
  • Improvements with JS Docs
  • Dart
  • Visual Studio Extension API
  • How do people follow along with the VS Code improvements?
  • Follow along on GitHub and Twitter
  • Download VS Code Insiders
  • Have a general road map of what the plan is for the year
  • Technical debt week
  • What do you wish people knew about VS Code?
  • Favorite extensions
  • Docker extension and Azure extension
  • And much, much more!

Links:

Sponsors

Picks:

Charles

Rachel

Matt




la

JSJ 323: "Building a JavaScript platform that gives you the power to build your own CDN" with Kurt Mackey

Panel:

  • Charles Max Wood
  • AJ ONeal

Special Guests: Kurt Mackey

In this episode, the JavaScript Jabber panel talks to Kurt Mackey about Fly.io. At Fly.io, they are "building a JavaScript platform that gives you the power to build your own CDN." They talk about how Fly.io came to fruition, how CDN caching works, and what happens when you deploy a Fly app. They also touch on resizing images with Fly, how you actually build JavaScript platforms using Fly, and more!

In particular, we dive pretty deep on:

  • Fly.io
  • Building a programmable CDN
  • High level overview of Fly.io
  • How did this project come together?
  • CDNs didn’t work with dynamic applications
  • Has been working on this since 2008
  • Extend application logic to the “edge”
  • Putting burden of JavaScript “nastiest” onto the web server
  • Fly is the proxy layer
  • Getting things closer to visitors and users
  • CDN caching
  • Cache APIs
  • Writing logic to improve your lighthouse score
  • Have you built in resizing images into Fly?
  • Managing assets closer to the user
  • Can you modify your own JavaScript files?
  • What happens when you deploy a Fly app
  • Having more application logic
  • DOM within the proxy
  • Ghost
  • React and Gatsby
  • Intelligently loading client JavaScript
  • How do you build the JavaScript platform?
  • And much, much more!

Links:

Sponsors

Picks:

Charles

AJ

Kurt




la

JSJ 325: Practical functional programming in JavaScript and languages like Elm with Jeremy Fairbank

Panel:

  • Aimee Knight
  • Joe Eames
  • AJ ONeal

Special Guests: Jeremy Fairbank

In this episode, the JavaScript Jabber panel talks to Jeremy Fairbank about his talk Practical Functional Programming. Jeremy is a remote software developer and consultant for Test Double. They talk about what Test Double is and what they do there and the 6 things he touched on in his talk, such as hard to follow code, function composition, and mutable vs immutable data. They also touch on the theory of unit testing, if functional programming is the solution, and more!

In particular, we dive pretty deep on:

  • Jeremy intro
  • Works for Test Double
  • What he means by “remote”
  • What is Test Double?
  • They believe software is broken and they are there to fix it
  • His talk - Practical Functional Programming
  • The 6 things he talked about in his talk
  • Practical aspects that any software engineer is going to deal with
  • Purity and the side effects of programming in general
  • Hard to follow code
  • Imperative VS declarative code
  • Code breaking unexpectedly
  • Mutable data VS immutable data
  • The idea of too much code
  • Combining multiple functions together to make more complex functions
  • Function composition
  • Elm, Elixir, and F#
  • Pipe operator
  • Scary to refactor code
  • Static types
  • The idea of null
  • The theory of unit testing
  • Is functional programming the solution?
  • His approach from the talk
  • And much, much more!

Links:

Sponsors

Picks:

Aimee

AJ

Joe

Jeremy




la

MJS 075: Jeff Escalante

Show notes coming shortly!




la

JSJ 336: “The Origin of ESLint” with Nicholas Zakas

Panel:

Special Guests: Nicholas Zakas

In this episode, the panel talks with Nicholas Zakas who writes on his site, Human Who Codes. He is the creator of ESLint, also the author of several books, and he blogs, too. He was employed through Box and today he talks about ESLint in full detail! Check it out! 

Show Topics:

0:05 – Advertisement: KENDO UI

0:37 – Hello! The panel is...(Chuck introduces everyone).

1:04 – Nicholas who are you?

1:17 – Nicholas: Yeah it’s been about 5 years and then you invited me again, but I couldn’t come on to talk about ESLint back then. That’s probably what people know me most for at this point. I created ESLint and I kicked that off and now a great team of people is maintaining it.

1:58 – Chuck: What is it?

2:04 – It’s a Linter for JavaScript. It falls into the same category as JSLint. The purpose of ESLint is to help you find problems with your code. It has grown quite a bit since I’ve created it. It can help with bugs and enforcing style guides and other things.

2:53 – Where did it come from?

2:57 – Guest: The idea popped into my head when I worked at Pop. One of my teammates was working on a bug and at that time we were using...

Nothing was working and after investigating someone had written a JavaScript code that was using a native code to make an Ajax request. It wasn’t the best practice for the company at the time. For whatever reason the person was unaware of that. When using that native XML...there was a little bit of trickiness to it because it was a wrapper around the...

We used a library to work around those situations and add a line (a Linter) for all JavaScript files. It was a text file and when you tried to render code through the process it would run and run the normal expression and it would fail if any of the...matched.

I am not comfortable using normal expressions to write code for this. You could be matching in side of a string and it’s not a good way to be checking code for problems. I wanted to find a better way.

6:04 – Why did you choose to create a product vs. using other options out there?

6:15 – Guest: Both of those weren’t around. JSHint was pretty much the defector tool that everyone was using. My first thought was if JSHint could help with this problem?

I went back to look at JSHint and I saw that on their roadmap you could create your own rules, and I thought that’s what we need. Why would I build something new? I didn’t see anything on GitHub and didn’t see the status of that. I wanted to see what the plan was, and they weren’t going to get to it. I said that I really needed this tool and I thought it would be helpful to others, too.

8:04 – My history was only back when it was customizable.

8:13 – Aimee: It’s interesting to see that they are basing it on regular expressions.

8:32 – Guest: Interesting thing at Box was that there was...I am not sure but one of the engineers at Box wrote...

9:03 – Aimee: I was going to ask in your opinion what do you think ES Lint is the standard now?

9:16 – Guest: How easy it is to plug things in. That was always my goal because I wanted the tool not to be boxed in – in anyway.

The guest continues to talk about how pluggable ESLint is and the other features of this tool.

13:41 – One thing I like about ESLint is that it can be an educational tool for a team. Did you see that being an educational tool?

14:24 – Guest: How do you start introducing new things to a team that is running at full capacity? That is something that I’ve wondered throughout my career. As a result of that, I found that a new team there were some problems I the code base that were really hard to get resolved, because when one person recognizes it there isn’t a god way to share that information within a team in a non-confrontational way. It’s better to get angry at a tool rather than a person.

Guest goes into what this can teach people.

18:07 – Panelist: I am not surprised. Is there a best practice to get a team to start with ESLint?

Do you get the whole team in a room and show them the options or take the best guess and turn it on?

18:34 – Guest: The thing I recommend is that first and foremost get ESLint in your system with zero rules on. It starts that mindset into your development process. We can do something to automatically check...

Get Syntax checking and you will se improvements on the number of bugs that are getting out of production. I recommend using the default the ESLint configuration. This has all of the things that we have found that are most likely errors and runtime errors vs. syntax errors. You can go through with those and sometimes it is easier to run that check with...

Using those ESLint rules will clean up a lot of problems that you didn’t know you had with your code. There are too many problems with those rules. I recommend instead of turning them off then put the severity to warning and not error. That is something we started with in the beginning. We turned on as many rules as we could and it drove people crazy. They didn’t feel like when they were committing to a file why should I be...

The idea with the different scenario levels you don’t’ want to turn off rules so people don’t know there is a problem. There can be a rule on so people will know that there is a problem, but...

Doing that alone will give you a lot of benefit in using ESLint. How do you decide as a team on the rules that are maybe not for finding errors but for stylistic in error? Do we use four spaces, semi-colons, etc. To figure that out I am a big component on finding a pre-existing style guide and adapting it. Get everyone to agree.

There is no right or wrong when it comes to stylistic preferences. It really is just getting everyone to do the same thing. I think it was Crawford that said: Whether you drive on the right side of the left side of the road – it doesn’t matter as long as everyone is dong the same thing. I agree with that and it applies to style guides. It can get heated but for the best thing for the team is stick with a guide and work together.

24:36 – Aimee: I can go through the options to pick one of the style guides out there and then it will automatically create my configuration for me is helpful. Question: If you had to pick 2 or 3 rules that you are super helpful what would they be?

25:30 – Guest: To touch briefly on indentation. Whether you like four spaces or whether you are wild and like tabs, I think the indent rule is very helpful. Just for wiping out and eliminating that discussion through your team. Have your editor setup however they want but on the pre-hook...

But my favorite rules I tend to lean towards the ones that saved me.

The Guest goes through his favorite rules with ESLint. Check it out!

26:51 – Guest mentions his second favorite rule, here!

28:24 – Guest mentions his third favorite rule, here!

29:03 – Guest mentions the rule that makes him giggle a lot, here!

30:07 – Advertisement – Sentry!

31:22 – What is your take on running Fix? Does it make sense to run Fix?

32:00 – Guest: It depends and the idea behind Fix is the idea of doing a one time (at the start) fix everything that it can find wrong b/c I don’t want to do it by hand. It morphed into a more of a tool that people are using all the time. I too have mixed feelings about it. I think the greatest value you get out of Fix is that when you first install it or when you enable a new rule. I think in those situations you get a lot of value out of Fix. I think that when people were getting aggressive with their code styles it took us down a path where we...

As a pre-commit hook it could be to fix things and part of the built system you wouldn’t want...

People are probably wondering: Why doesn’t ESLint doesn’t fix all the time?

It can be a team decision: do you want to run Fix at the point that the developer is writing the code, do you want to use Fix as running it as a build when you are bundling? It really seems more of a personal preference. I am on the fence about it. Even though I am leaning more towards...

35:16 – Do you run Premier?

35:20 – Guest: No I don’t. I don’t have anything against Premier but I think Prettier uses a very interesting space.

37:50 – Chuck: What is next for ESLint and what is next for you?

37:55 – Guest: Well, to be honest I am not sure what is next for ESLint. I haven’t been involved with keeping it maintained for the last few years. I do help out with feedback with decisions. But in general the ESLint the direction is that let’s add tings that help people avoid language hazards and make sure that ESLint is still pluggable. Lastly, that we will be there to help people and the community. There is this virtuosic cycle and tools like Babble and then tools like ESLint introducing rules adapting new rules and features better.

For myself, and the future, I haven’t been involved with ESLint because I am focusing on my health. I was diagnosed with Lyme Disease and it meant that I needed to focus on my health. That’s why, too, I wasn’t able to join a few years ago. I am doing better but I am a few years away for working fulltime and writing books and blogging, again. The trajectory is upward. I want to stress that you need to take care of yourself.

There is interesting stuff that we are doing and I love it, but make sure you take care of yourself! If you don’t have your health then nothing will really matter. I want to encourage you all to take care of yourselves better. This industry can take a toll on your body b/c it is high-stressed. If you are stressed your immune system will shut down. For a lot of us we are working too much and there isn’t an off-switch. I would like to encourage people to examine their life and their time.

When you take time to turn off your analytic brain, and work on your creative brain then the pathways will connect better.

Please save your money!

Lyme disease is spread through tick bites.

44:30 – Aimee: Thank you for sharing that!

44:38 – Chuck: It’s encouraging to me that you are still trying to come back even after this disease. I think we take things for granted sometimes. You can’t always count on things going the way you want it to go.

45:19 – Guest: What happened to me was I left work and one Friday afternoon I had a normal weekend. My health was on the decline, and I rested all weekend. And Monday I couldn’t get out of bed. That started this whole period where I stopped leaving the house completely. That’s how quickly things can change for you. I harp on people a lot to save their money. If I didn’t have savings there would be a very different end to my story. I want to encourage people to save.

46:33 – Chuck: I think on that note let’s go to picks. Where can people find you?

46:45 – Guest: My blog is Human Who Codes.

47:10 – Chuck: Anything people can do to help you? Check out his books you won’t regret it!

47:33 – Guest: Buying books is always helpful. I would say that if you can spend some time contributing to ESLint that is always a great help. Anything you can do to help them will help me. I want to make sure that those folks are happy, healthy and productive. For me, personally, I love when people Tweet at me and say HI! I love hearing other people’s stories of how they have overcome past diseases or illnesses. If you want to send monetary gifts – donate to a wonderful organization that helps children with Lyme disease. I would encourage you to support if you feel inclined.

50:49 – Chuck: We appreciate it, and I appreciate you being so open about your personal story.

51:11 – Advertisement – eBook: Get a coder job!

Links:

Sponsors:

Picks:

Aimee

Chris

Cory

Charles

  • My JavaScript Story

Joe

Nicholas




la

MJS 088: Nicholas Zakas

Panel: Charles Max Wood

Guest: Nicholas Zakas

This week on My JavaScript Story, Charles talks with Nicholas Zakas who is a blogger, author, and software engineer. Nicholas’ website is titled, Human Who Codes – check it out! You can find him on Twitter, GitHub, and LinkedIn among other social media platforms. Today, Nicholas and Chuck talk about Nicholas’ background, JavaScript, and current projects.

In particular, we dive pretty deep on:

0:00 – Advertisement: Get A Coder Job!

1:00 – Chuck: Welcome! Give us a background, please, Nicholas!

1:14 – Guest: I am probably best known for making ESLint and I have written a bunch of books, too! (See links below.)

1:36 – Chuck: JSJ 336 and JSJ 075 episodes are the two past episodes we’ve had you on! (See links below.) Let’s go back and how did you get into programming?

1:58 – Guest: I think the first was written in BASIC, which was on a Laser computer. It was a cheaper knockoff version. I think I was into middle school when I got into BASIC. Then when I got into high school I did this computer project, which was the first time someone else used one of my programs.

4:02 – Chuck: Was it all in BASIC or something else?

4:13 – Guest: Just BASIC, but then transferred to something else when we got our first PC.

5:13 – Chuck: How did you get to use JavaScript?

5:18 – Guest: 1996 was my freshman year in college. Netscape 3 got into popularity around this time. I had decided that I wanted to setup a webpage to stay in-touch with high school friends who were going into different directions.

I got annoyed with how static the [web] pages were. At the time, there was no CSS and the only thing you could change was the source of an image (on webpages).

On the <a tag> you could do...

8:35 – Chuck: You get into JavaScript and at what point did you become a prolific operator and author?

8:52 – Guest: It was not an overnight thing. It definitely was fueled by my own curiosity. The web was so new (when I was in college) that I had to explore on my own. I probably killed a few trees when I was in college. Printing off anything and everything I could to learn about this stuff!

10:03 – Guest (continues): Professors would ask ME how to do this or that on the departmental website. When I was graduating from college I knew that I was excited about the WEB. I got a first job w/o having to interview.

12:32 – Guest (continues): I got so deep into JavaScript!

13:30 – Guest (continued): They couldn’t figure out what I had done. That’s when I got more into designing JavaScript APIs. About 8 months after graduating from college I was unemployed. I had extra time on my hands. I was worried that I was going to forget the cool stuff that I just developed there. I went over the code and writing for myself how I had constructed it. My goal was to have an expandable tree. This is the design process that I went through. This is the API that I came up with so you can insert and how I went about implementing it. At some point, I was on a discussion with my former colleagues: remember that JavaScript tree thing I wrote – I wrote a description of how I did it. Someone said: Hey this is really good and you should get this published somewhere. Huh! I guess I could do that. I went to websites who were publishing articles on JavaScript. I went to submit the article to one of them. I think it was DevX or WebReference.

18:03 – Guest: A book is a compilation of different articles?! I can do that. I wanted to write a book that would fill in that next step that was missing. I didn’t know what the book was going to be, and I decided to start writing. Once I’ve had enough content I would take a step back and see what it was about. (Check out Nicholas’ books here!)

19:01 – Chuck: Oh you can turn this into a book!

19:10 – Guest: There was very little that I had planned out ahead of time. Anything that happened to me that was exciting had stumbled into my lap!

19:37 – Chuck: That’s how I felt about podcasting – it fell into my lap/life!

19:50 – Chuck: Listeners – check out the past episodes with Nicholas, please. Nicholas, what are you proud of?

20:10 – Guest: In 2006, I was at Yahoo and started off with My Yahoo Team. This was the first time that I was exposed to a massive amount of JavaScript in a single web application.

26:21 – Chuck: Can you talk about your health issues? People would definitely benefit from your example and your story.

26:44 – Guest: I think it is something important for people to understand.

The guest talks about Lyme Disease.

35:49 – Chuck: Yep taking care of yourself is important!

36:00 – Guest: Yes to enjoy time with friends and explore other hobbies. Help yourself to de-stress is important. Cognitive work is very draining. When you aren’t getting the right amount of sleep your body is going to get stressed out. Take the time to do nonsense things. You need to let your brain unwind! I love these adult coloring books that they have!

38:07 – Chuck: I love to take a drive up the canyon.

38:12 – Guest.

38:24 – Chuck: Yeah to focus on ourselves is important.

38:36 – Guest: Your body will make it a point to say: pay attention to me! Your body goes into flight or fight mode and your systems shut-off, which of course is not good. You don’t want your body to stay in that state.

New parents get sick frequently with newborns, because they aren’t getting enough sleep.

41:08 – Guest: Get some R&R!

41:20 – Chuck: This is great, but I have another call! Let’s do some Picks!

41:35 – Advertisement – Fresh Books! 30-Day Trial!

END – Cache Fly

Links:

Sponsors:

Picks:

Charles Max Wood

  • Wall Calendars – 6 ft. x3 ft.

Nicholas Zakas




la

JSJ 358: Pickle.js, Tooling, and Developer Happiness with Anatoliy Zaslavskiy

Sponsors

Panel

  • AJ O’Neal

  • Charles Max Wood

Joined by Special Guest: Anatoliy Zaslavskiy

Summary

Anatoliy Zaslavskiy introduces pickle.js and answers the panels questions about using it. The panel discusses the automated testing culture and employee retention. The panel discusses job satisfaction and why there is so much turn over in development jobs. Charles Max Wood reveals some of the reasons that he left past development jobs and the panel considers how the impact of work environments and projects effect developers. Ways to choose the right job for you and how to better a work situation is discussed. Anatoliy finishes by advocating for junior developers and explaining the value they bring to a company.

Links

Picks

AJ O’Neal

Charles Max Wood

Anatoliy Zaslavskiy

  •  




la

JSJ 361: Enough with the JS Already with Nicholas Zakas

Sponsors

Panel

  • AJ O’Neal
  • Joe Eames
  • Aimee Knight
  • Charles Max Wood
  • Chris Ferdinandi

Joined by Special guest: Nicholas Zakas

Summary

Nicholas Zakas discusses the overuse of JavaScript and the underuse of HTML and CSS. The panel contemplates the talk Nicholas Zakas gave 6 years ago about this very same topic and how this is still a problem in the development community. Nicholas expounds on the negative effects overusing Javascript has on web applications and the things that using HTML and CSS do really well. The panel talks about the need for simplicity and using the right tool to build applications. Nicholas recommends the methods he uses to build greenfield applications and to improve existing applications.

Links

Picks

Chris Ferdinandi:

AJ O’Neal:

Aimee Knight:

Charles Max Wood:

Joe Eames:

Nicholas Zakas:




la

MJS 111: Anatoliy Zaslavskiy

Sponsors

  • Sentry use the code “devchat” for 2 months free on Sentry small plan
  • CacheFly

Host: Charles Max Wood

Joined By Special Guest: Anatoliy Zaslavskiy

Episode Summary

Anatoliy Zaslavskiy has been interested in computers since he was 7 years old, and began his programming career in high school, doing web development in PHP for the online community for his favorite show  Avatar: The Last Airbender. Anatoliy currently works for Hover as a Frontend developer transforming home photos into 3D models to help visualize what the final project will look like.

Anatoliy shares his journey as a developer with bipolar disorder and tells us how he restructured his career with his employer so he can focus on projects that he enjoys working on. This way he performs at his best and both him and Hover can benefit from his talents. Anatoliy and Charles stress the importance for companies to talk to their developers to understand their nature as both parties benefit from open and honest dialogue.

Links

Picks

Anatoliy Zaslavskiy:

Charles Max Wood:




la

JSJ 370: Azure Functions Part II with Jeff Hollan LIVE at Microsoft BUILD

Sponsors

  • Triplebyte offers a $1000 signing bonus

  • Sentry use the code “devchat” for 2 months free on Sentry small plan

  • CacheFly

Panel

Charles Max Wood

Joined by Special Guest: Jeff Hollan

 

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Jeff Hollan. Jeff is a Sr. Program Manager for the Azure Functions cloud service. Continuing from where Colby Tresness left off in Adventures in Angular 241: Azure Functions with Colby Tresness LIVE at Microsoft BUILD, Jeff defines what “serverless” really means in developer world. Jeff also talks about various scenarios where Azure functions are extremely useful and explains what Durable Functions are.

Jeff and Charles discuss creating and running an Azure function inside a container and the upcoming capabilities of Azure functions they are currently working on.

Links

Picks

Jeff Hollan:

Charles Max Wood:




la

JSJ 379: FindCollabs and Podcasting with Jeff Meyerson

Sponsors

Panel

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

With Special Guest: Jeff Meyerson

Episode Summary

Jeff Meyerson is the host of the Software Engineering daily podcast and has also started a company called FindCollabs, an online platform for finding collaborators and building projects. Jeff started FindCollabs because he believes there are all these amazing tools but people are not combining and collaborating as much as they could, when so much good could be accomplished together. FindCollabs is especially useful for working on side projects. The panelists discuss the problems encountered when you try to collaborate with people over the internet, such as finding people who are facing similar and gauging interest, skill, and availability. Thankfully, FindCollabs has a feature of leaving reviews and rating your partners so that users can accurately gauge other’s skill level. Users can also leave comments about their experience collaborating with others. The only way you can show competence with an interest is to contribute to another project. FindCollabs is also a good place to look for mentors, as well as for Bootcamp graduates or people going through an online coding course. If you are part of an organization, you can create private projects. The company plans to expand this feature to all users in the future.The panelists talk about their past experiences with collaborating with other people.

Jeff talks about his podcast Software Engineering Daily and how it got started and the focus of the podcast. As someone working in technology, it is important to stay current on up and coming technology, and listening to podcasts is an excellent way to do that. Jeff talks about where he thinks podcasting is going, especially for programmers. The panel discusses some of the benefits of listening to programming podcasts. Jeff talks about how he is prepping Software Engineering Daily for the future. He shares the audience size for Software Engineering Daily and some of the statistics for his different channels. Jeff has also released an app for Software Engineering Daily, and he shares some information on how it was written. Finally, Jeff gives advice for people who want to use FindCollabs and some of the next steps after creating a profile.

Click here to cast your vote NOW for JavaScript Jabber - Best Dev Podcast Award

Links

Follow DevChat on Facebook and Twitter

Picks

Aimee Knight:

AJ O’Neal:

Charles Max Wood:

Jeff Meyerson:




la

JSJ 382: Mental Health with Anatoliy Zaslavskiy

Sponsors

  • Sentry– use the code “devchat” for $100 credit 

Panel

  • Charles Max Wood

With Special Guest: Anatoliy Zaslavskiy

Episode Summary

Anatoliy Zaslavsky works for Hover, made framework called Pickle.js, and has been on JavaScript Jabber before. Today Chuck and Anatloliy are talking about the importance of mental health. Anatoliy has Bipolar Disorder, and he talks about what it is and his experience with it and how his manic and depressive episodes have affected him. Thankfully, his employers at Hover have been extremely supportive. Chuck and Anatoliy talk about what people should do when they are suffering from a mental illness so that they can do the things they love again. Some of the best ways of coping with mental health issues are to keep a lifeline out to friends and family, go to a professional therapist, stay on a consistent exercise and sleep pattern, and stay away from substances. They talk about how to support someone that is suffering from a mental illness. 

Anatoliy talks about some of the symptoms and behavioral changes he has during both manic and depressive episodes and how it has affected him in the workplace. Mental health issues are almost always accompanied by changes in behavior, and Chuck and Anatoliy talk about ways to approach a person about their behavior. Anatoliy gives advice on how to work with your employer while you are suffering from a mental illness. For mental illnesses that aren’t as dramatic as Bipolar Disorder, Anatoliy talks about coping mechanisms such as staying away from triggers, knowing what motivates you and communicating it to your employer, and other practices that have helped him. He talks about some of his triggers and how it has affected his work, both for the better and worse.

 Finding out what helps you cope and what triggers you is often trial and error, but it can help to talk to other people in your field who struggle with the same mental health issues. Anatoliy talks about the pros and cons of working from home or in an office when you have a mental illness. They finish by talking about a few other points on mental health and resources for those suffering from a mental illness to get the help they need. 

 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Anatoliy Zaslavskiy:




la

MJS 122: Rachel Roumeliotis and Roger Magoulas

Episode Summary

Rachel Roumeliotis and Roger Magoulas from O'Reilly Media join Charles Max Wood at OSCON to talk about the process of content development for OSCON. Rachel is the Vice President of Content Strategy at O'Reilly and Roger is Vice President of Radar at O'Reilly.

Rachel and Roger talk about the history of OSCON Conference as well as the key technologies they wanted to cover this year such as Artificial Intelligence, Machine Learning and Cloud-Native applications.

They then talk about the future of OSCON and the highlights they wat to cover next year such as security.

Sponsors

Host: Charles Max Wood

Joined by Special Guests: Rachel Roumeliotis and Roger Magoulas

Links




la

JSJ 392: The Murky Past and Misty Future of JavaScript with Douglas Crockford

Episode Summary

Douglas is a language architect and helped with the development of JavaScript. He started working with JavaScript in 2000. He talks about his journey with the language, including his initial confusion and struggles, which led him to write his book JavaScript: The Good Parts.

Douglas’ take on JavaScript is unique because he not only talks about what he likes, but what he doesn’t like. Charles and Douglas discuss some of the bad parts of JavaScript, many of which were mistakes because the language was designed and released in too little time. Other mistakes were copied intentionally from other languages because people are emotionally attached to the way things “have always been done”, even if there is a better way.

Doug takes a minimalist approach to programming. They talk about his opinions on pairing back the standard library and bringing in what’s needed. Douglas believes that using every feature of the language in everything you make is going to get you into trouble. Charles and Douglas talk about how to identify what parts are useful and what parts are not.

Douglas delves into some of the issues with the ‘this’ variable. He has experimented with getting rid of ‘this’ and found that it made things easier and programs smaller. More pointers on how to do functional programming can be found in his book How JavaScript Works 

Charles and Douglas talk about how he decided which parts were good and bad. Douglas talks about how automatic semicolon insertion and ++ programming are terrible, and his experiments with getting rid of them. He explains the origin of JS Lint. After all, most of our time is not spent coding, it’s spent debugging and maintaining, so there’s no point in optimizing keystrokes.

Douglas talks about his experience on the ECMAScript development committee and developing JavaScript. He believes that the most important features in ES6 were modules and proper tail calls. They discuss whether or not progression or digression is occurring within JavaScript. Douglas disagrees with all the ‘clutter’ that is being added and the prevalent logical fallacy that if more complexity is added in the language then the program will be simpler. 

Charles asks Douglas about his plans for the future. His current priority is the next language. He talks about the things that JavaScript got right, but does not believe that it should not be the last language. He shares how he thinks that languages should progress. There should be a focus on security, and security should be factored into the language. 

Douglas is working on an implementation for a new language he calls Misty. He talks about where he sees Misty being implemented. He talks about his Frontend Masters course on functional programming and other projects he’s working on. The show concludes with Douglas talking about the importance of teaching history in programming. 

Panelists

  • Charles Max Wood

With special guest: Douglas Crockford

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Charles Max Wood:

Douglas Crockford:




la

MJS 129: Filipa Lacerda

Charles Max Wood talks to Filipa Lacerda in this week's My JavaScript Story. Filipa has been working as a front end engineer since 2011 and she currently works at GitLab.

Filipa originally wanted to study Economy but when she got to university she decided to major in Communications thinking it would be a lot more about communication and not as much about coding. At first she really didn't like the coding aspect of it but then as time went by she actually started to enjoy coding.

When she first started working she started out on the User Experience side, but then she wanted to switch to building stuff with code because she wanted to see results really fast and enjoyed that aspect of coding.

Charles asks why she stuck with that degree instead of switching it and Filipa explains that at first because she didn't want to go back and re - take the exams and also decided that this degree offered many job opportunities in many different industries and now she can't imagine herself doing anything else.

Filipa then talks about why she is working with Vue and all the different kind of projects she has done using Vue as well as what working for GitLab looks like on a day to day basis.

Host: Charles Max Wood

Joined by Special Guest:  Filipa Lacerda

Links

Sponsors

  • Sentry use the code “devchat” for 2 months free on Sentry small plan

  • Adventures in .NET

  • Elixir Mix

  • CacheFly

Picks

Filipa Lacerda:

Charles Max Wood:




la

JSJ 405: Machine Learning with Gant Laborde

Gant Laborde is the Chief Innovation Officer of Infinite Red who is working on a course for beginners on machine learning. There is a lot of gatekeeping with machine learning, and this attitude that only people with PhDs should touch it. In spite of this, Gant thinks that in the next 5 years everyone will be using machine learning, and that it will be pioneered by web developers. One of the strong points of the web is experimentation, and Gant contrasts this to the academic approach. 

They conversation turns to Gant’s course on machine learning and how it is structured. He stresses the importance of understanding unicode, assembly, and other higher concepts. In his course he gives you the resources to go deeper and talks about libraries and frameworks available that can get you started right away. His first lesson is a splashdown into the jargon of machine learning, which he maps over into developer terms. After a little JavaScript kung fu, he takes some tools that are already out there and converts it into a website.

Chris and Gant discuss some different uses for machine learning and how it can improve development. One of the biggest applications they see is to train the computers to figure monotonous tasks out while the human beings focus on other projects, such as watching security camera footage and identifying images. Gant restates his belief that in the next 5 years, AI will be everywhere. People will grab the boring things first, then they will go for the exciting things. Gant talks about his creation NSFW.js, an open source train model to help you catch indecent content. He and Chris discuss different applications for this technology.

Next, the panel discusses where machine learning can be seen in everyday life, especially in big companies such as Google. They cite completing your sentences in an email for you as an example of machine learning. They talk about the ethics of machine learning, especially concerning security and personal data. They anticipate that the next problem is edge devices for AI, and this is where JavaScript really comes in, because security and privacy concerns require a developer mindset. They also believe that personal assistant devices, like those from Amazon and Google, will become even more personal through machine learning. They talk about some of the ways that personal assistant devices will improve through machine learning, such as recognizing your voice or understanding your accent. 

Their next topic of discussion is authenticity, and how computers are actually incredibly good at finding deep fakes. They discuss the practice of placing passed away people into movies as one of the applications of machine learning, and the ethics surrounding that. Since developers tend to be worried about inclusions, ethics, and the implications of things, Gant believes that these are the people he wants to have control over what AI is going to do to help build a more conscious data set. 

The show concludes with Gant talking about the resources to help you get started with machine learning. He is a panelist on upcoming DevChat show, Adventures in Machine Learning. He has worked with people with all kinds of skill sets and has found that it doesn’t matter how much you know, it matters how interested and passionate you are about learning. If you’re willing to put the pedal to the metal for at least a month, you can come out with a basic understanding. Chris and Gant talk about Tensorflow, which helps you take care of machine learning at a higher level for fast operations without calculus. Gant is working on putting together a course on Tensorflow. If you’re interested in machine learning, go to academy.infinite.red to sign up for Gant’s course. He also announces that they will be having a sale on Black Friday and Cyber Monday.

Panelists

  • Christopher Buecheler

With special guest: Gant Laborde

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Christopher Buecheler:

Gant Laborde: 

Free 5 day mini course on academy.infinite.red




la

MJS 132: Douglas Crockford

Douglas Crockford self-described as the person who discovered that JavaScript has good parts is on this week's My JavaScript Story. Charles and Douglas talk about how Douglas got introduced to programming. and how he specialized in JavaScript.

Douglas realized that there's going to be a convergence of TV and computing very early in his career. So a lot of his career has been bridging those two things, helping the evolution toward digital media. After working for Atari he went to work at Lucasfilm where he stayed for 8 years.

Charles asks Douglas what he is working on now, and what his plans are for the future. Douglas is planning to write more books one of which is Math for Programmers.

Host: Charles Max Wood

Joined by Special Guest:  Douglas Crockford

Sponsors

 

________________________________________________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood will be out on November 20th on Amazon. Get your copy on that date only for $2.99

________________________________________________________________________________________________

 

 

Links

Picks

Charles Max Wood:




la

JSJ 409: Swagger and Open API with Josh Ponelat

Today the panel discusses the difference between Swagger and Open API with Josh Ponelat. Josh details the difference between the two. Swagger is a set of protocols around describing restful APIs. Swagger was taken over by a company called SmartBear, who donated the donated the specification to the Open Linux Foundation, and that became the Open API. Swagger is the tooling surrounding these specifications. Open API is a standardized way to describe a restful API in a YAML file. Once you’ve got a YAML file to describe your API, you can use tooling like Swagger to leverage that and take it to the next level. Using the Open API process is useful for situations where you already have an API in place, but want to codify and document it so that it’s controlled. Then going forward, you won’t introduce contradictions and it remains consistent because it’s documented in a YAML file. The process leaves room for enhancement in the future as well. 

Josh talks about some of the benefits of standardizing your API and some of the use cases besides tooling. A standardized API can help show developers how to use your API, SDKs, and service stubs by knowing your API is consistent in style. This makes it easier to find breaking changes and more. Josh talks more about Swagger, a finite set of tooling around Open API, most of which are open source. He talks about other tools that test APIs and do linting on YAML files. Some of the companies that use Open API include Google, Amazon, and Microsoft. Josh talks about how Amazon implements Open API.

Josh talks about the book he’s writing, Designing APIs with Swagger and Open API. The book goes over describing APIs today, how to design APIs without writing code first, and how to get the most out of the system. The show concludes with Josh talking about the power of consistency and writing things down on paper. He discusses where implications that the standardization of APIs has on the text industry. 

Panelists

  • Dan Shapir

  • Charles Max Wood

Guest

  • Josh Ponelat

**To receive your the 40% OFF coupon for Manning Publications (good for all our products in all formats) visit us at Facebook - click on "Send A Message"and type "YES"**

Sponsors

  • Sentry | Use the code “devchat” for $100 credit

Links

Picks

Dan Shapir

Charles Max Wood

Josh Ponelat




la

JSJ 417: Serverless with Microsoft Azure with Burke Holland

Burke Holland works for Microsoft on the Azure team in developer relations. He starts the show talking about how he got started in serverless. He’s careful to note that just because things are marketed as serverless doesn’t always make them so. In order for something to be serverless, it must be sufficiently abstracted in terms of technology, only require payment for what is used, and infinitely scalable. He talks about the statelessness of serverless, and the panel discusses what it means to be stateless. Burke reminds listeners that serverless is not for long-lived operations, but there are features in serverless providers that can help you get around this. Burke talks about how writing serverless code differs from standard or previous coding approaches and practices. He advises that serverless functions are best kept small, and talks about how to fit them in with other kinds of APIs. 

The panelists talk about the multi-cloud and why people would want to be on multiple cloud servers. Burke talks about what Microsoft has done with Serverless Frameworks to accomplish multi-cloud compatibility. The JavaScript experts discuss the advantages and disadvantages of picking JavaScript over other languages, and Burke talks about why he prefers TypeScript and the Easy-Off feature. They talk about speed on a serverless platform, especially concerning the cold start time, which Azure is relentlessly trying to lower. He does talk about some things that can be done to decrease load time and about premium functions. The panel discusses how to debug serverless functions and tools that are available, such as the Azure Functions extension. 

They talk about ways to set up more secure functions to keep things from racking up charges. Burke talks about some things Microsoft does internally to control cloud costs, such as sending monthly reports with reminders to delete and using tools like Azure Reaper to delete short-lived projects. Azure can also put spending caps on subscriptions, but when you hit that cap you can’t serve any more requests. Burke concludes by saying that most of the time, going serverless is a lower-cost way to improve productivity, and because it’s event-driven, it allows you to tie into things that you’re already doing in the cloud. Serverless almost always justifies itself from an ease of use point of view and a cost point of view. 

Panelists

  • Aimee Knight

  • Steve Edwards

  • Dan Shapir

  • AJ O’Neal

  • Charles Max Wood

Guest

  • Burke Holland

Sponsors

____________________________

> "The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Picks

Steve Edwards:

Burke Holland:

Dan Shapir:

  • Taking a vacation

AJ O’Neal:

Charles Max Wood:




la

JSJ 421: Semantic HTML with Bruce Lawson

Bruce Lawson is an expert in and proponent of semantic HTML. After receiving some good natured ribbing, Bruce walks the panel through the benefits of semantic HTML. He provides several examples on how it's used and in particular how it helps with other issues like accessibility and navigability on your websites.

Panel

  • AJ O’Neal
  • Aimee Knight
  • Charles Max Wood
  • Dan Shappir

Guest

  • Bruce Lawson

Sponsors

____________________________________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Picks

AJ O’Neal:

Aimee Knight:

Charles Max Wood:

Dan Shappir:

Bruce Lawson:




la

MJS 139: Radoslav Stankov

Rado Stankov is the Head of Engineering at Product Hunt. He's based in Sofia Bulgaria. He walks us through learning Pascal and PHP and Flash. We then dive into Ruby and JavaScript and what he's working on now at Product Hunt.

Host: Charles Max Wood

Joined By Special Guest: Radoslav Stankov

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Radoslav Stankov:

Charles Max Wood:




la

MJS 144: Josh Ponelat

JavaScript Remote Conf 2020

May 14th to 15th - register now!

Josh Ponelat is Software Architect at SmartBear working on Swagger and OpenAPI. He's from South Africa. Josh's father is a programmer and was heavily influenced by his father. He started with ANSI-C and hacking on shells. He studied graphic design in school. He got back into programming in PHP and MySQL and wound up transitioning to JavaScript.

Host: Charles Max Wood

Joined By Special Guest: Josh Ponelat

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Josh Ponelat:

  • Miro

  • Pour Over Coffee

Charles Max Wood:




la

Yearbook of cultural property law. 2006 [electronic resource] / Sherry Hutt, editior, David Tarler, assistant editor




la

Yearbook of cultural property law. 2007 [electronic resource] / Sherry Hutt, editior, David Tarler, assistant editor




la

Yearbook of cultural property law. 2008 [electronic resource] / edited by Sherry Hutt, David Tarler




la

Yearbook of cultural property law. 2009 [electronic resource] / Sherry Hutt, editor; David Tarler, assistant editor




la

Yearbook of cultural property law. 2010 [electronic resource] / Sherry Hutt, editor; David Tarler, assistant editor




la

Yearning for the new age [electronic resource] : Laura Holloway-Langford and late Victorian spirituality / Diane Sasson

Sasson, Diane, 1946-




la

Yeats's poetic codes [electronic resource] / Nicholas Grene

Grene, Nicholas




la

Yellow dogs and Republicans [electronic resource] : Allan Shivers and Texas two-party politics / Ricky F. Dobbs

Dobbs, Ricky F




la

Yellowface [electronic resource] : creating the Chinese in American popular music and performance, 1850s-1920s / Krystyn R. Moon

Moon, Krystyn R., 1974-




la

The yellowhammer war [electronic resource] : the Civil War and Reconstruction in Alabama / edited by Kenneth W. Noe




la

Yemen [electronic resource] : dancing on the heads of snakes / Victoria Clark

Clark, Victoria, 1961-




la

Yet I loved Jacob [electronic resource] : reclaiming the biblical concept of election / Joel S. Kaminsky

Kaminsky, Joel S., 1960-




la

Yiddish language structures [electronic resource] / edited by Marion Aptroot and Björn Hansen




la

Yiddishlands [electronic resource] : a memoir / David G. Roskies

Roskies, David G., 1948-




la

Yii rapid application development hotshot [electronic resource] : become a RAD hotshot with Yii, the world's most popular PHP framework / Lauren J. O'Meara, James R. Hamilton III

O'Meara, Lauren J




la

Yoga and psychology [electronic resource] : language, memory, and mysticism / Harold Coward

Coward, Harold G




la

The Yoruba diaspora in the Atlantic world [electronic resource] / edited by Toyin Falola and Matt D. Childs




la

You are what you eat [electronic resource] : literary probes into the palate / edited by Annette M. Magid




la

You gotta deal with it [electronic resource] : Black family relations in a Southern community / Theodore R. Kennedy

Kennedy, Theodore R., 1936-