From the Trenches of the Enterprise Software

Yakov Fain

Subscribe to Yakov Fain: eMailAlertsEmail Alerts
Get Yakov Fain via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Latest Blogs from Yakov Fain
In this article, I’ll share with you my experience of upgrading more than a dozen of Anguar 5 projects to Angular 6. These projects were small to medium in size, but they used lots of… More
It’s Saturday morning and it’s raining in New York City. My dog Sammy is still asleep. There is not much you can do. Why not start writing a new book? The agreements with Manning Publications… More
This article is a part of my RxJS series, and the previous post is here. My plan for this morning was to spend 15 min skimming through my RxJS slides and code samples for the… More
State management is one of the most important aspects of any app that has UI. redux is a popular library for maintaining state in the React community. ngrx is a redux-inspired library for maintaining state… More
In this article, we’ll discuss pipeable operators introduced in RxJS 5.5. The previous articles in this series include: 1. Basic Terms 2. Operators map, filter, and reduce 3. Using Observable.create() 4. Using RxJS Subject 5.… More
The release of Angular 6 is around the corner, and in this blog, I’d like to highlight some of its new features announced by the Angular Team. I started working with Angular was in its early… More
Imagine that you’re a proud owner of a convenience store that sells various products. Remember how did you start? You rented an empty place (i.e. the store was in its initial state). Then you purchased… More
After reading this blog, some of you may say that I was trying to shamelessly promote the book I’m working on, but this was not the goal of this write-up. Over the years, I’ve authored… More
In April 2018, we’ll run two online workshops. 1. Hands-on workshop on creating modern-looking web apps 2. State management with ngrx Advertisements
Over the years, I was taking screenshots of error messages that are creative, funny, or just useless. Here’s my current collection. I’ll keep adding more images, but if you have your favorite error message, add… More
I use the Yarn package manager for all my Angular projects. Besides being faster than npm, yarn creates a file yarn.lock that stores the exact versions of installed dependencies. Last year, I wrote about a… More
With Angular CLI, generating a new app and installing dependencies takes 30 seconds. Creating a production build takes another 15 seconds. And the best part is that the size of the deployed app can be… More
Angular’s dependency injection mechanism allows us to cleanly separate business logic (services) from UI (components). What if our app generates a stream of values and we want to implement it as an injectable service? In… More
There are situations when the ability to generate new Angular CLI projects from the locally installed packages is quite useful, for example: You’re running a live workshop at a conference in a hotel and the… More
Books: Angular Development with TypeScript, Second Edition, Manning Publications, 2018 Angular 2 Development with TypeScript, Manning Publications, 2016 Java Programming. 24-Hour Training, 2nd edition, Wiley, 2015 Java Programming for Kids, Self-Published e-book, 2015, Free Download...
In this article, I’ll show you aone of the RxJS operators for error handling – the catch() operator. The previous articles in this series include: 1. Basic Terms 2. Operators map, filter, and reduce 3.… More
In this article I’ll introduce the switchMap() operator. The previous articles in this series include: 1. Basic Terms 2. Operators map, filter, and reduce 3. Using Observable.create() 4. Using RxJS Subject 5. The flatMap operator… More
In this article I’ll introduce an RxJS flatMap() operator. The previous articles in this series include: 1. Basic Terms 2. Operators map, filter, and reduce 3. Using Observable.create() 4. Using RxJS Subject In some cases,… More
In this article I’ll introduce an RxJS Subject. The previous articles in this series include: 1. Basic Terms 2. Operators map, filter, and reduce 3. Using Observable.create() An RxJS Subject is an object that contains… More
In the previous article of this series you’ve seen some RxJS operator, and in this article I’ll show you how to create an Observable using the method create() and how an observable can send messages… More
In the previous article, I introduced the main players or RxJS, and now let’s start getting familiar with RxJS operators. In this article well use the operators map(), filter(), and reduce(). As the data elements… More
Today, I’m starting a series of articles about programming with reactive extensions. This series is about the JavaScript RxJS library, but in the future, I’m planning to write a similar series about the RxJava –… More
I’m planning to run a limited number of lunch-and-learn sessions for the organization located in Manhattan (New York City). These sessions are free of charge. Just pick a session from this list and send an… More
TypeScript supports parameterized types, also known as generics, which can be used in a variety of scenarios. For example, you can create a function that can take values of any type, but during its invocation,… More
Back in 2015, the ECMAScript 6 spec was released and at the time of this writing, all major browsers (except the stubborn IE11) support its syntax. In this article, I’ll show you a couple of… More
I’m happy to announce that my colleague Anton and I started working on the second edition of our Angular book published by Manning. The new TOC is here. The major changes in the second edition… More
So you have an Angular JS in prod and you want to migrate it to the latest version of Angular. The first question to answer is why? While talking to our clients, I’ve heard the… More
Just read this article about the recent GitHub Open Source survey revealing that 93 percent of people reported being frustrated with “incomplete or confusing documentation”. While I definitely agree that good documentation is key to… More
We started receiving requests for teaching an advanced Angular workshop. My colleague Anton and I started preparing the courseware and are planning to offer such a workshop this fall. Below is a draft of this… More
This is a list of presentations and workshops that Yakov Fain offers in 2017. If you’d like to invite Yakov to run any of these talks/workshops at your organization, please send an email at training@faratasystems.com.… More
This year I already ran about ten Angular workshops and made several presentations at various conferences (e.g. DevoxxUS, DevNexus, BuzzJS, JEEConf). Over the last 20 years, I’ve been running workshops on different software but I… More
I run public and private training pretty often, and the question about the class size often comes up. In this write-up, I’ll share my experience in teaching groups of people of various sizes and the… More
Yesterday, I was a No Show at one of the FREE webinars that I registered for. To be honest with you, even when I was registering for this event two weeks ago, I was not… More
I’ve been using Java generics for years, and when I saw their syntax in TypeScript, I simply put a checkmark in the list of TypeScript features that I already know and understand.I was wrong. Let… More
Yesterday, I was running yet another Angular workshop. After explaining how to install dependencies using npm, I show how to use Yarn (see this blog), a faster alternative to npm, and suggest that the students… More
You may need to have an Angular project that has multiple apps so you can run the build of a particular app, say depending on the customer you’re preparing the build for. In my case,… More
Over the last several years, the term “reactive programming” became popular in many programming languages. Reactive Manifesto was published although it gives a rather generic definition of reactive systems http://www.reactivemanifesto.org. Yes, an app should response…...
Angular 4 comes with some useful changes in the router. Let’s take a look at the changes in receiving parameters by a route and in the CanDeactivate guard (see here). A route can receive the… More
As of the latest Angular CLI beta 30, the command to install Angular CLI looks as follows: npm install -g @angular/cli To get rid of the old version of Angular CLI and install the new… More
In the upcoming six months of 2017 I’ll be speaking at the following conferences: 1. BuzzJS, New York City, January 27, 1 talk 2. DevNexus, Atlanta, February 22-24, 2 talks 3. DevoxxUS, San Jose, March… More