Not that long ago, Machine Learning was something you did on specialized high performance hardware with specialized languages.

The thought that this could be done in Javascript inside a browser would have been laughable.

Well, laugh no more.

Running Machine Learning applications on the web browser is one of the hottest trends in software development right now. Many notable machine learning projects are being built with Tensorflow.js. It is one of the most popular frameworks for building performant machine learning applications that run smoothly in a web browser.

In this video, Web Dev Simplified sets up real time face detection through a webcam using AI (in JavaScript!).

By the end of this video you will have fully functional real time face detection on your site which can be used with any webcam or phone camera.

Materials/References:

Siraj Raval just posted this video on defending AI against adversarial attacks

Machine Learning technology isn’t perfect, it’s vulnerable to many different types of attacks! In this episode, I’ll explain 2 common types of attacks and 2 common types of defenses using various code demos from across the Web. There’s some really dope mathematics involved with adversarial attacks, and it was a lot of fun reading about the ‘cat and mouse’ game between new attack techniques, followed by new defense techniques. I encourage anyone new to the field who finds this stuff interesting to learn more about it. I definitely plan to. Let’s look into some math, code, and examples. Enjoy!

Slideshow for this video:
https://colab.research.google.com/drive/19N9VWTukXTPUj9eukeie55XIu3HKR5TT

Demo project:
https://github.com/jaxball/advis.js

 

JavaScript: the language people love to hate and hate to love.

Or is it “JavaScript: not the language we need, but the language we deserve.”

What makes this language loathed and loved so much around the world?

Maybe it’s because it’s a lot of different ideas put into one language.

  • High-level
  • Single-threaded
  • Garbage-collected
  • Interpreted or JIT Compiled
  • Prototyped-Based
  • Multi-parasdigm
  • Dynamic Language
    • with a non-blocking event loop
  • And a partridge in a pear tree

Ok, I made the last one up, but watch the video for a good explanation of the “assembly language of the web.”

I still remember the first time I saw JavaScript, although at the time it was known as LiveScript and it was part of a beta release of Netscape Navigator. The language has evolved over the years, but it never really lost the “anarchistic feel” of a language that still feels like it’s in beta some 25 years later.

I’ve always been fascinated by the reaction many JavaScript developers have to TypeScript. Many love it and many dislike it. The goal of TypeScript was to bring the order and type integrity found in languages like C# and Java, which makes building large, complex systems much easier. Others dislike it because it alters the anarchistic nature of JavaScript. This makes me wonder how larger organizations react when approaching it.

In this talk from JSConf Hawaii, Brie Bunge talks about the process AirBnB went through to adopt TypeScript throughout their organization.

Machine learning is no longer just for data science whiz kids. Now, front end developers need to have a basic handle on this technology. Here’s a great talk by Charlie Gerard on “Practical Machine Learning for Front End Developers.”

From the abstract:

Machine learning can have some pretty complicated concepts to grasp if you’re not a data scientist. However, recent developments in tooling make it more and more accessible for developers and people with little or no experience. One of these advancements is the ability to now train and run machine learning algorithms and models in the browser, opening this world to front-end developers to learn and experiment. In this presentation, we will talk about the different applications, possibilities, tools and resources, as well as show a few examples and demos, so you can get started building your own experiments using machine learning in JavaScript.