JavaScript Is Sexy
Master JavaScript and Frontend Development
  • Recent Posts
  • About/Contact
  • All Posts
Menu
JavaScript Is Sexy
Master JavaScript and Frontend Development
avatar

Richard Bovell

Richard BOVELL is a computer scientist, author, and founder of AI Humanity and Bov Academy of Programming and Innovation. See the About/Contact page for more on Richard.

Posts created
22
Posts liked
0
  • Latest posts
UI/UX Development

Innovative User Interfaces—You Have Likely Never Seen User Interfaces Like These

avatar
Richard Bovell·March 13, 2019

For years, I have been fascinated with user experience and user interfaces, and I spent innumerable hours devising and developing new user interfaces. But I had so many new concepts for user interfaces that I couldn’t possibly develop them in my lifetime, so I was honored to ask the students at Bov Academy to develop them for their own benefit.

Crux

When I created Bov Academy, an innovative programming educational institution, one of the exciting things we include in the program is innovative UI development. Students get to develop the innovative UI components I conceive, and thus get the honor of developing a unique experience for the web that we haven’t seen before.

Indeed, we like to push our students to go beyond their perceived limits, as you can see in some of the complex and innovative UI components below.

Introduction

I conceptualized dozens of innovative user interfaces that the frontend engineers students at Bov Academy develop as part of their training at the academy. The innovative UI components will be part of Evolution UI, an open-source UI library like Bootstrap. What distinguishes this innovative library from other is that it features only innovative UI components.

Preview 23 Innovative UI Components

While some of the components are still in development, many are ready for production. The components have been developed with HTML, CSS,

Read more
JavaScript

Learn Meteor.js Properly

avatar
Richard Bovell·October 9, 2014

At the end of this article, I outline two comprehensive study guides to help you learn Meteor properly. The study guides are for both beginners and seasoned developers. The first study guide, which uses a book, a paid screencast, and some free online resources, teaches you how to build a sophisticated, modern social-media web application with Meteor. And the second study guide, which uses only free resources (one affordable screencast and free online resources), is just as instructive as the first, though you won’t build a specific web application throughout the course.

[sc:mongodb-book]

First, I give a comprehensive Meteor overview, in which I discuss just about everything you want and need to know about Meteor before you commit to investing your time and other resources in this still burgeoning though exceptional technology.

Time to read the Meteor Overview:

14 minutes

What You Will Learn in this Meteor Overview

I explain exactly what Meteor is, how it differs from typical JavaScript frameworks, what it offers developers specifically, its alternatives and contemporaries, whether you should be excited or skeptical about it, and where to find Meteor jobs. I also enumerate some of the endorsements written by Meteor converts, and I explore the justifiable criticisms, known limitations, and frequently asked questions that many have raised about Meteor. You will learn all this and much more.

I am honored that you have joined me and I am hopeful you will find this article helpful and illuminating and the accompanying study guides and recommended resources sufficiently instructive.

Read more
115 comments  Like
12 Powerful JavaScript Tips

Beautiful JavaScript: Easily Create Chainable (Cascading) Methods for Expressiveness

avatar
Richard Bovell·August 13, 2013

(Part of the “12 Powerful JavaScript Tips” Series)

Prerequisites:
— Understand JavaScript’s “this” With Ease
— JavaScript Objects in Detail

Chaining Methods, also known as Cascading, refers to repeatedly calling one method after another on an object, in one continuous line of code. This technique abounds in jQuery and other JavaScript libraries and it is even common in some JavaScript native methods.

[sc:mongodb-book]

Writing code like this:

$("#wrapper").fadeOut().html("Welcome, Sir").fadeIn();

or this:

str.replace("k", "R").toUpperCase().substr(0,4);

is not just pleasurable and convenient but also succinct and intelligible. It allows us to read code like a sentence, flowing gracefully across the page. It also frees us from the monotonous, blocky structures we usually construct.

We will spend the next 20 minutes learning to create expressive code using this cascading technique. To use cascading, we have to return this (the object we want subsequent methods to operate on) in each method. Let’s quickly learn the details and get back to eating, or watching YouTube videos, or reading Hacker News, or working and browsing, or working and focusing.

Let’s create all of our “chainable” code within an object, along with a local data store. Note that in a real-world app we will likely store the data in a database, but here we are just saving it in a variable.

// The data store: var usersData = [ {firstName: "tommy",
Read more
31 comments  Like
16 Important JavaScript Concepts

JavaScript’s Apply, Call, and Bind Methods are Essential for JavaScript Professionals

avatar
Richard Bovell·July 10, 2013

Prerequisite:
— Understand JavaScript’s “this” With Ease, and Master It.
— JavaScript Objects
— Understand JavaScript Closures
(This is an intermediate to advanced topic)

Duration: About 40 minutes.

Functions are objects in JavaScript, as you should know by now, if you have read any of the prerequisite articles. And as objects, functions have methods, including the powerful Apply, Call, and Bind methods. On the one hand, Apply and Call are nearly identical and are frequently used in JavaScript for borrowing methods and for setting the this value explicitly. We also use Apply for variable-arity functions; you will learn more about this in a bit.

On the other hand, we use Bind for setting the this value in methods and for currying functions.

We will discuss every scenario in which we use these three methods in JavaScript. While Apply and Call come with ECMAScript 3 (available on IE 6, 7, 8, and modern browsers), ECMAScript 5 (available on only modern browsers) added the Bind method. These 3 Function methods are workhorses and sometimes you absolutely need one of them. Let’s begin with the Bind method.

Read more
115 comments  Like
JavaScript

16 JavaScript Concepts JavaScript Professionals Must Know Well

avatar
Richard Bovell·July 9, 2013

(Essential JavaScript Concepts for Modern JavaScript Development )

If you plan to work as JavaScript Professional, you must know some JavaScript concepts and JavaScript-related web-development technologies, particularly as a modern JavaScript developer. If you know the 16 concepts enumerated below, you have the skill necessary to build world-class modern JavaScript web applications, and you are set for the near future—0 to 3 years.

[sc:mongodb-book]

I will expound on each of these sixteen concepts, and I am hopeful all of us will have become better JavaScript programmers by the time we get through all of them. I have completed most of the 16 concepts with just a few more to go, so keep reading and learning. And sign up for the newsletter to get the latest updates.

I trust you have learned JavaScript properly or you already know JavaScript enough to build a simple JavaScript-only web application. While the 16 concepts note below are neither complex nor difficult, you will understand them best if you already know at least some basic JavaScript.

The sixteen concepts that every modern JavaScript developer should know well follow:

  1. JavaScript Objects in Detail
  2. JavaScript Prototype in Plain, Detailed Language
  3. JavaScript Variable Scope and Hoisting Explained
  4. Understand JavaScript Closures With Ease
  5. Understand JavaScript Callback (Higher-Order) Functions
  6. Understand JavaScript’s “this” With Clarity,
Read more
69 comments  Like
16 Important JavaScript Concepts

Understand JavaScript’s “this” With Clarity, and Master It

avatar
Richard Bovell·July 5, 2013

(Also learn all the scenarios when this is most misunderstood.)

Prerequisite: A bit of JavaScript.
Duration: about 40 minutes.

The this keyword in JavaScript confuses new and seasoned JavaScript developers alike. This article aims to elucidate this in its entirety. By the time we make it through this article, this will be one part of JavaScript we never have to worry about again. We will understand how to use this correctly in every scenario, including the ticklish situations where it usually proves most elusive.

[sc:mongodb-book]

We use this similar to the way we use pronouns in natural languages like English and French. We write, “John is running fast because he is trying to catch the train.”

Note the use of the pronoun “he.” We could have written this: “John is running fast because John is trying to catch the train.” We don’t reuse “John” in this manner, for if we do, our family, friends, and colleagues would abandon us. Yes, they would. Well, maybe not your family, but those of us with fair-weather friends and colleagues. In a similar graceful manner, in JavaScript, we use the this keyword as a shortcut, a referent; it refers to an object; that is, the subject in context, or the subject of the executing code. Consider this example:

var person = { firstName: "Penelope",
Read more
220 comments  Like
HTML5

Learn HTML5, CSS3, and Responsive WebSite Design in One Go

avatar
Richard Bovell·May 6, 2013

(You will also learn HTML5 Boilerplate, Modernizr, and Twitter Bootstrap 3.0 responsive website layout)

Prerequisite: Familiarity with basic HTML and CSS
Duration: 2 – 3 days (about 18 hours)

We have learned quite a bit of JavaScript, but we must take a break from JavaScript briefly and learn HTML5 and CSS3, because we need both, along with JavaScript of course, to build modern web applications and websites.

[sc:mongodb-book]

Both CSS3 and HTML5 are just about fully supported in all modern browsers, and we there are techniques in place to patch old browsers that lack support. So there is no disadvantage to using CSS3 and HTML5 today. The opposite is true, however: there are many painful, frustrating disadvantages with forgoing HTML5 and CSS3.

You may already “know” a bit of HTML5 and a touch of CSS3 (or perhaps you probably know enough old-school HTML and CSS), and with this knowledge, you might have thought you needn’t learn HTML5 and CSS3 fully.

The crux of the matter is that after you complete this course, you will make faster, more user friendly, highly adaptive websites and web applications. And you will learn a number of other very exciting modern web development techniques.

Responsive Web Design is becoming increasingly essential (we are probably a few months away from responsive being mandatory) with the ubiquity of the myriad screen sizes available today.

Read more
75 comments  Like
Advanced javaScript

OOP In JavaScript: What You NEED to Know

avatar
Richard Bovell·March 19, 2013

(Object Oriented JavaScript: Only Two Techniques Matter)

[sc:mongodb-book]

Prerequisite:
JavaScript Objects in Detail
JavaScript Prototype

Object Oriented Programming (OOP) refers to using self-contained pieces of code to develop applications. We call these self-contained pieces of code objects, better known as Classes in most OOP programming languages and Functions in JavaScript. We use objects as building blocks for our applications. Building applications with objects allows us to adopt some valuable techniques, namely, Inheritance (objects can inherit features from other objects), Polymorphism (objects can share the same interface—how they are accessed and used—while their underlying implementation of the interface may differ), and Encapsulation (each object is responsible for specific tasks).

In this article, we are concerned with only Inheritance and Encapsulation since only these two concepts apply to OOP in JavaScript, particularly because, in JavaScript, objects can encapsulate functionalities and inherit methods and properties from other objects. Accordingly, in the rest of the article, I discuss everything you need to know about using objects in JavaScript in an object oriented manner—with inheritance and encapsulation—to easily reuse code and abstract functionalities into specialized objects.

We will focus on only the best two techniques1 for implementing OOP in JavaScript. Indeed, many techniques exist for implementing OOP in JavaScript, but rather than evaluate each, I choose to focus on the two best techniques: the best technique for creating objects with specialized functionalities (aka Encapsulation) and the best technique for reusing code (aka Inheritance).

Read more
228 comments  Like
16 Important JavaScript Concepts

Understand JavaScript Callback Functions and Use Them

avatar
Richard Bovell·March 4, 2013

(Learn JavaScript Higher-order Functions, aka Callback Functions)

In JavaScript, functions are first-class objects; that is, functions are of the type Object and they can be used in a first-class manner like any other object (String, Array, Number, etc.) since they are in fact objects themselves. They can be “stored in variables, passed as arguments to functions, created within functions, and returned from functions”1.
[sc:mongodb-book]

Because functions are first-class objects, we can pass a function as an argument in another function and later execute that passed-in function or even return it to be executed later. This is the essence of using callback functions in JavaScript. In the rest of this article we will learn everything about JavaScript callback functions. Callback functions are probably the most widely used functional programming technique in JavaScript, and you can find them in just about every piece of JavaScript and jQuery code, yet they remain mysterious to many JavaScript developers. The mystery will be no more, by the time you finish reading this article.

Callback functions are derived from a programming paradigm known as functional programming. At a fundamental level, functional programming specifies the use of functions as arguments. Functional programming was—and still is, though to a much lesser extent today—seen as an esoteric technique of specially trained, master programmers.

Fortunately, the techniques of functional programming have been elucidated so that mere mortals like you and me can understand and use them with ease.

Read more
215 comments  Like
Advanced javaScript

Learn Intermediate and Advanced JavaScript

avatar
Richard Bovell·February 25, 2013

(Learn Intermediate and Advanced JavaScript Concepts and Techniques in 2 Weeks)

Prerequisite:
You have completed this course: Learn JavaScript Properly (For NON-JavaScript programmers and First-time Programmers)

Or you already know the following JavaScript concepts well:
— Simple Data Types, Reference Types, Operators, and Objects (in Detail)
— Variable Scope and Hoisting, Expressions, Statements, and JSON
— DOM, The Window Object, JavaScript Events, and Handling Errors
— Functions, Function Properties, Function Expression, and AJAX
— Basic Regular Expressions and Modules

Duration:
2 Weeks

[sc:mongodb-book]

I submit to you an instructive course on intermediate and advanced JavaScript. The skills you will learn in this course of study will free you from the constrains of using the limited JS techniques you have been using to develop JS applications, and they will give you new insights and new techniques—a Jedi’s temperament and stature—to program JS applications with ease, efficiency, and precision.

If you are new to JavaScript and you are an experienced programmer in another language such as Java, Python, ActionScript, Rails, and PHP, it is important that you learn JavaScript properly. JavaScript has many idiosyncrasies and uncommon concepts that you must know well before you follow this Intermediate to Advanced JavaScript course.

Read more
27 comments  Like
1 2 3 Next

Receive Updates

In Collaboration With

  • Recent Posts
  • About/Contact
  • All Posts

© 2018 JavaScript Is Sexy

Site Designed By Sam Chittenden

Close
  • Recent Posts
  • About/Contact
  • All Posts