This Week Reads

What’s the Difference Between Width/Height in CSS and Width/Height HTML attributes?

I save you time if you prefer not to read this one. Presentational attributes (HTML attributes) have weaker (or lesser priority) compare to CSS attribute of the same function.

23 lesser known VS Code Shortcuts as GIF

You probably have seen a lot of similar posts, but this explains the shortcut in animated GIF, which is easier to understand!

ES6 vs ES2015 – What to call a JavaScript version?

Confuse with JavaScript version? You’re not alone. This will explain the difference between ES6 and ES2015. Hint: they are the same.

Get Hired: A New Series

This is a series of posts about getting hired, how to prep resume and go to interview. If you are looking for a job, it’s worth the time to invest in the preparation.

How to avoid infinite nesting callbacks

Ever seen (or written) JavaScript function with bunch of nested callbacks? The new `async` `await` will help you avoid that.

This Week Reads

Advanced Features with Azure Service Bus

High level overview of advanced features, from Session & FIFO, Auto Forwarding, Scheduling, Deferred, Duplicate detection to high availability and disaster recovery.

Strangler pattern

If you ask me, I think it’s not much of an architecture pattern, but more of migration strategy. Especially useful to migrate from legacy to modern application. It’s worth the read.

10 Important Git Commands that Every Developer Should Know

If you’re new to Git, this is a good start. The 10 important (and also most commonly used) Git commands. If you’re Git veteran, it’s also a good refresher.

Move petabytes of data with resilience – Azure Data Factory adds resume support!

It’s encouraging to learn how far Azure Data Factory has come. It now has support for resuming the pipeline when it fails. The resume will only run from the point where it failed.

How a Kaggle Grandmaster cheated in $25,000 AI contest with hidden code

Cheater is going to get caught eventually. This is an entertaining story to read about cheating in machine learning competition.

First of the Week Reading List

How to use npx: the npm package runner

There’s so much to say about `npx`, but essentially, it allows you to run package (think of the cli tool that comes with a package) without installing it globally, or without installing the package at all!

Microsoft: We want you to learn Python programming language for free

Learn Python for free! But obviously, you probably already expect this, that it will also promote the usage of Azure.

Google reveals new Python programming language course: Scholarships for 2,500

Well, if Microsoft has free Python course, Google gotta launch its own. Soon, I’m sure Amazon will follow. Google course is not free however, but will give scholarship to 2500 students.

Third-Party Components at Their Best

This post is less of educational, but more of “things you should have”, aka checklist, if you want to use third-party UI components. But, it also applies to non-UI, it applies to any open source really. And you can even use this checklist if you want to start your own open source project.

6 Ways to Unsubscribe from Observables in Angular

Yes, the glorious Observables in Angular. It’s double-edged sword, but it will only hurt you if you forget to unsubscribe. Luckily, there are 6 ways to do it. This post will show you how.

Another Reading List

A .NET Manager’s Perspective on F#

Even though the title says it’s a manager’s perspective, the post actually contains elements of functional programming in general. Good read for intro to functional programming.

The beauty of Functional Programming

This post makes argument on why functional programming is good alternative to more mainstream language. I also like how it covers basic functional programming things like pure function, immutability, etc.

Learn all about Distributed Application Runtime (Dapr), Part 1

Dapr is a fairly new open source project that aim to help you to build multi-cloud, platform-agnostics APIs. It has lots of features, such as state management and pub-sub. This Azure Friday video introduces the concept.

Rock, Paper, Scissors, Lizard, Spock – Sample Application

Microsoft code example to demonstrate microservices that use multilanguage and built in Azure.

Bye bye Postman ! Let’s share your REST API calls in team, easily !

In the world of microservices, tools like Postman is a must today. REST Client is Postman-like, but better. With VS Code extension and versioning in your favorite source control, this is going to be replacing my Postman.

Another Reading List

Cross Tab Communication with Javascript

This post lays out an interesting problem, how can Javascript communicates across browser tab (or iframe or window)? There are few different approaches with pro and cons of each.

Use read-only replicas to load-balance read-only query workloads

With new vCore pricing model, Azure offers SQL solution with better features. One of those is no-cost, built-in read-only scale out database. Read more on the details here.

Overview of Microsoft Authentication Library (MSAL)

MSAL is the new library to authenticate with Microsoft Identity Platform (or what it used to be Azure AD endpoint). It’s replacing ADAL (which only used to authenticate to Azure AD endpoint – v1). The new version support authentication beyond Azure AD which includes personal account ( / and social accounts like Facebook / Twitter, etc.  For more details on Microsoft Identity Platform:

Authentication flows

There are many authentication flows in the world of authentication. This Microsoft documentation gives overview of each auth flow and how it’s being used. Primarily for Microsoft Identity Platform, but generally applicable to other platform / framework as well.  The more details coverage of each auth flow can also be found here:

Google Spent 2 Years Studying 180 Teams. The Most Successful Ones Shared These 5 Traits

Great achievement can sometime be done by one person. But most of the time, it’s a team. This post talks about Google research into what makes the most successful one. It’s along the same line of previous studies around motivation, more psychological than anything else.

Mid-week Reading List

Application Dev Keynote (Ignite)

Microsoft Ignite has passed, but this app dev keynote by Scott Hanselman summarized the announcement around app dev pretty well. From Kubernetes, .Net Core, Visual Studio to IOT, everything is covered.

Progressive Web Apps in 2020

It’s a long read but gives you overview the state of PWA in 2020. There’s a lot going on for sure, but it thorough covers how PWA in browsers and mobile devices (that’s mobile browsers and app stores).

Keeping your code clean by sweeping out “if” statements

A simple pattern to replace `if` statements using “lookup”. I thought it’s pretty neat alternative to `if` statments and very clean as well. The question we should probably asking ourselves is, why do we want to replace `if` statements and what’s the value of doing so?

WebSockets for fun and profit

A very cool post about basic WebSockets. From the background, under the hood to sample code, all covered in the post. If you don’t know anything about WebSockets, or just want to know more, this worth a read.

The Making of the Azure Mystery Mansion

If you’re thinking of building a text-based game, check out this post. A team build a text-based game to promote Microsoft Learn, a platform to learn Azure and other Microsoft product. It includes few libraries that the team used to build the game.

New Year Reading List

An Introduction to DataFrame

The cool in-memory schema-on-read DataFrame that is widely used in Python and other machine learning platform (Apache Spark, Databricks, etc) is coming to .NET. It does remind me of `DataSet` and `DataReader`.

Memory-wise apps with C# .NET

Very nice post by Ali, compiling from different sources and lay out how to write memory-efficient C# app.

20 Predictions about Software Development trends in 2020

An interesting perspective about what’s coming in 2020. From a quick glance, it looks like reasonable predictions.

Top 7 Modern programming languages to learn now

Rust is on the top, followed by Go. Two modern language which popularity has been gaining a lot of momentum lately. This post explains the basic of modern programming language and benefits of languages like Rust and Go.

Atomic Design Methodology

Online book by Brad Frost to explain the concept of atomic design. It’s a concept that mimic biological molecules and construct UI elements in a modular way for re-usability and maintainability.

Christmas Reading List

What is Zone.js?

Zone.js itself is independent of Angular. However, when developing in Angular, it’s important to know a thing or two about Zone. Zone is in the heart of Angular framework. This old video explains how it works.

What Makes a Great Remote Team

This isn’t a typical technical post, but somewhat related. Google has spent 2 years researching what makes a great remote team. This is the result. Worth the read if you are in remote culture.

Let’s Get Graphic: A Few Ways To Draw On The Web

There are many library out there to draw on the web. This post goes over few of them and the pro / cons. You may even learn a new library you didn’t know before.

The Buzz around InnerSource

The concept of innersource is to use lesson learned from open source and apply it internally within the company. This post is high level overview that includes links to other resources for more details. If you want more, here’s the more details explanation:

Leveraging Cognitive Services to simplify inventory tracking

See how intern students solve inventory tracking problem with Azure Cognitive Services. I thought their solution is really good, it includes having online and offline mode when classifying the product.

More Reading List

100 new requests in Node.js while still serving the first one

This is an interesting look into how Node.js works under the hood when serving multiple requests. It’s different than how Apache, Tomcat or IIS serve the request from users. Pretty interesting.

Promises and async/await relationship

I always wonder how they actually relate to each other. This short post explains it concisely. They are also interchangeable.

Best Practices for REST API Error Handling

I’d categorize this more of “basic” practices. However, just because it’s basic, doesn’t mean you can ignore them. In fact, they are very important in building APIs.

How to handle exceptions in asynchronous code in C#

The main (and probably the only) takeaway from this post is that exception thrown in an `async` method that returns a `Task` object is wrapped in an instance of `AggregateExpcetion` which you would have to access with `tasks.Exception` instance. Check out the code example in the post.

Reduce Change Detection Cycles with Event Coalescing in Angular

Event bubbling in Angular app can be problematic when it triggers change detection. This post shows you how to coalesce them.

Monday Reading List

Don’t snapshot your UI components, make assertions!

Great post discussing unit test and the reason behind making assertions vs snapshot UI. More of philosophical that hopefully shape how you think about unit testing. Good read.

Something to Know about gRPC in ASP.NET Core 3

gRPC is on the rise! And so is ASP.NET Core 3! But wait, it’s not working in Azure App Service? Head on to this post to learn why. But, hey, maybe it will be fixed soon.

AI Terms Every Beginner Should Know: an Abbreviations Glossary

This is the kind of post I like. I would start learning about AI but hardly can explain it to others. Knowing the terms definitely helps, and it makes you look like an expert!

Hacking ASP.NET apps and turning them onto Zombies

Interesting post about ASP.NET. Even though this is security related, it’s not one of those boring security. It’s about hacking, injecting malicious code into ASP.NET app. And more importantly, how to prevent it.

Fast Data is Forcing New Strategies in DevOps

Probably not worth your time to read. But I do like that it argues real-time streaming data has its own challenge in DevOps. It also offer high-level solutions / approach to the challenge.