javascript


Azure Communications Voice Calling QuickStart

In this post, I’m going to walk you through the process of getting started with adding voice calling into your apps using Azure Communication Services (ACS). If you haven’t read my previous post or watched my video on “What is Azure Communication Services?” I’d recommend doing that first so that you understand what ACS is all about and the key features it offers. In a nutshell, ACS allows you to add voice, video, chat, SMS, and other telephony features into your applications. It can be used in web apps, desktop apps, or mobile apps. The ACS docs have a Calling […]


Using the Kubernetes JavaScript Client Library

I’ve been working with Kubernetes a lot and focusing on various deployment techniques that can be used (such as Blue-Green Deployments) for a Pluralsight course I’m creating called Kubernetes for Developers: Deploying Your Code. If you’re new to Blue-Green Deployments, here’s a quick overview: While I was working on the course, Dr. Christian Geuer-Pollmann and I had chatted on Twitter about a Blue-Green dashboard he wrote. He did a great job on it! I’ve been wanting to experiment with the JavaScript Kubernetes Client library so I decided to see what could be done to create a simple Blue-Green Deployment “dashboard” […]


New Pluralsight Course: Creating Object-oriented TypeScript Code

I’m excited to announce the release of another course on Pluralsight titled Creating Object-oriented TypeScript Code! If you’ve been wanting to learn more about ES2015 features as well as object-oriented features available in TypeScript then this this is the class for you! Here are a few questions this course will help you answer: What techniques can be used to create objects in JavaScript and TypeScript? What is object-oriented programming? Can I work with classes? What are constructors? What are get/set properties? How do I define functions in classes? Is a static member the same as an instance member? Can classes […]


Observable Store 2.0 Released on npm!

I’m excited to announce the release of Observable Store 2.0 on npm! You can get started using it with the standard npm install command: The Github repository provides information about the specific steps to get started and how Observable Store can be used with various front-end projects. Why Observable Store? Before jumping in to what’s new in 2.0, let me give a quick overview of the Observable Store project in case you’re new to it. Several years ago I was working with a few large companies here in the United States who were building Angular and React apps. One in […]


RxJS Error: “Types of property ‘source’ are incompatible” and How to Fix It

I’m working on an npm package that requires RxJS as a peerDependency which means that whatever app uses the package must also install RxJS. Since my npm package project needs RxJS to build, I add it as a devDependency which of course adds it into the node_modules folder of the project. To use my npm package locally in sample apps I have I do the following which is a nice trick to avoid having to publish the package to npm (which I don’t want to do when I’m still working on it): Run npm link [package-name] where package-name is name […]


Debugging jasmine-ts Unit Tests in VS Code

I’m currently working on a project that relies on jasmine-ts to run unit tests. While it’s been working great, I encountered a bug in a unit test that required a lot more than a simple console.log() statement to figure out. I needed real debugging! Since my unit tests were running and providing output directly to the console, the question became, “How do you attach to a jasmine-ts unit test in VS Code?”. I found a few StackOverflow posts and finally went with something mentioned here (shout-out to isaacfi for providing the answer that actually worked). To debug a jasmine-ts unit […]


Data-Oriented vs. Control-Oriented Programming

I recently had someone ask me a question on Twitter about moving to Single Page Application frameworks and why they’d do that over choosing vanilla JavaScript or jQuery. It’s a great question but tough to question on Twitter with the limited amount of characters. So, I thought I’d dust off an old post I wrote many years ago to address the subject. I also wrote a post titled Choosing the “Right” JavaScript Library/Framework for Your Application that has some additional ideas to consider as well. Any type of front-end app can be built using vanilla JavaScript, jQuery, or a Single […]


Using the Iterator Pattern in JavaScript

I recently had to parse some markdown using the marked npm package and convert it into JSON objects for a project I’m working on. When I parsed the markdown I’d get back an array of tokens that would look something like the following: I started out the “normal” way by doing a for…of loop to iterate through the tokens in the array. This worked, but tracking the start and end of a token meant adding extra variables which ultimately complicated the code. For example, how do you know if you’re in a list? You track it with an inList variable […]


Simplifying Front-End State Management with Observable Store

I admit it – I think the use of some front-end JavaScript state management patterns has gotten out of control. When you’re spending a significant amount of time writing code (and often a lot of it) to handle application state or relying on a scaffolding tool that generates 100s or even 1000s of lines of code then it’s time to take a step back and ask, “Do I really need all of this?”. While you’re at it you might also ask, “What can I do to simplify my code and bring some sanity back to it?”. Rather than ranting about […]


Free Interactive Coding Course: Build Your First Angular App

About a year ago I was browsing the web and came across a site called Scrimba.com. It provided a unique way to learn about web technologies through a live code editor combined with audio that syncs with the code – something you have to actually try out to realize the full potential. Since I do a lot of training for companies the Scrimba tool really caught my eye. I was so impressed with the features Scrimba provided that I decided to contact the creators (Per Harald Borgen and Sindre Aarsaether) to let them know that I thought the tool they had […]