Last week - 4th April

Last Week

Last Week is a weekly column with an emphasis in articles and posts that I read and appreciated, it is a collection from a dozen of different sources. All the content shared is made by people which I believe that would highly appreciate your feedback, so don't forget to say thank you.

If you have a topic you would like to see reflected in this Last Week initiative, please leave a comment below!

Have an amazing week and always keep learning!


 

Azure

DevOps Dojo: Lean Product – Part 1

To become wise, you need to have models in your head. Models are formal structures represented in mathematics and diagrams that help us to understand the world. Mastery of models improves our ability to reason, explain, design, communicate, act, predict, and explore. When our thinking is informed by diverse, logically consistent, and empirically validated frames, we are more likely to make wise choices.

We will dedicate three blogs to exploring the product-centric model and the lean product model developed by our DevOps Dojo community. This blog is Part 1.

Check out the article: DevOps Dojo: Lean Product – Part 1

 

DevOps Dojo: Lean Product – Part 2

In Part 1 of our “DevOps Dojo: Lean Product” blog, we discussed the need to build foundational concepts of the product-centric model. This enables us to explore more advanced concepts in the lean product-centric model.

Check out the article: DevOps Dojo: Lean Product – Part 2

 

Introducing the new Azure Front Door: Reimagined for modern apps and content

In 2019, we launched Azure Front Door to bring enterprise-grade content delivery network (CDN) capabilities to our customers. This was a result of our own cloud journey over the past 13 years, which led us to develop unique infrastructure and services hardened by support for Microsoft’s largest applications like Bing, Microsoft 365, LinkedIn, Skype, and Azure. Read about LinkedIn’s experience1 migrating their own infrastructure to Azure Front Door.

Since then, a lot has changed for you and your customers. The acceleration of digital transformation to adapt to new ways of doing business, hybrid working models, and increasing security costs has driven the demand for a new type of cloud CDN that can address these modern challenges and simplify internet-first architectures in the cloud.

Today, we are announcing the general availability of the new Azure Front Door, our native, modern cloud content delivery network (CDN) catering to both dynamic and static content acceleration with built-in turnkey security, and a simple and predictable pricing model. There are two Azure Front Door tiers—Azure Front Door Standard and Premium—that provide a unified, secure solution for delivering your applications, APIs, and content on Azure or anywhere.

Check out the article: Introducing the new Azure Front Door: Reimagined for modern apps and content

 

Public preview: Azure Cosmos DB partition key advisor notebook

Use the Azure Cosmos DB partition key advisor notebook to choose the optimal partition key for your workload. Using the notebook, you can enter information about a new or existing workload including basic details, query information, and candidate partition keys. The advisor will use this information to rank the candidate keys you enter and give you a recommendation, as well as details about the benefits and trade-offs for each candidate. The advisor also gives you analysis of any cross-partition queries you may have as a result of choosing one candidate or another. The advisor works with any large or small, read heavy or write heavy workloads. 

Check out the article: Public preview: Azure Cosmos DB partition key advisor notebook

 

Azure Cost Management and Billing updates – March 2022

Whether you're a new student, a thriving startup, or the largest enterprise, you have financial constraints, and you need to know what you're spending, where, and how to plan for the future. Nobody wants a surprise when it comes to the bill, and this is where Azure Cost Management and Billing comes in.

We're always looking for ways to learn more about your challenges and how Azure Cost Management and Billing can help you better understand where you're accruing costs in the cloud, identify and prevent bad spending patterns, and optimize costs to empower you to do more with less.

Check out the article: Azure Cost Management and Billing updates – March 2022


 

dotnet / C#

.NET Framework 4.5.2, 4.6, and 4.6.1 will reach End of Support on Apr 26, 2022

If you are currently using .NET Framework 4.5.2, 4.6, or 4.6.1 runtime you need to update your deployed runtime to a more recent version – at least .NET Framework 4.6.2 before April 26, 2022 – in order to continue to receive updates and technical support. There is no need for you to retarget or recompile your application against .NET Framework 4.6.2.

Check out the full article: .NET Framework 4.5.2, 4.6, and 4.6.1 will reach End of Support on Apr 26, 2022

 

How segments and regions differ in decommitting memory in the .NET 7 GC

We just snapped the source with regions in GC on by default for the next .NET 7.0 preview build this past Monday (and the build will be release in April). So I wanted to explain how the regions feature differs in its policy for decommitting memory from segments so you can evaluate whether you are seeing something by design or not if you decide to try it out. Note that the regions feature is only available in 64-bit and for now we disable it for macOS. So everything in this article will assume 64-bit. Also we are still in the middle of the development cycle for .NET 7.0 so I’ll mention things that might change later.

Check out the full article: How segments and regions differ in decommitting memory in the .NET 7 GC

 

Avoiding Distributed Transactions with the Reservation Pattern

A long-running business process could last seconds to days, you cannot lock resources within a service using a distributed transaction. So what’s the alternative? The real world has a solution, it’s a reservation. The reservation pattern allows you to have a time-bound limited guarantee which allows you to coordinate with other services.

Check out the full article: Avoiding Distributed Transactions with the Reservation Pattern

 

Simple web site crawler using .NET Core and C#

This is an elementary Web site crawler written using C# on .NET Core . What do we mean by crawling a web site ? No! We are not indexing the content of the pages.

This is a simple component which will crawl through a web site (example: www.cnn.com), find sub-links and in turn crawl those pages . Only links which fall the under the domain of the parent site are accepted.

Check out the full article: Simple web site crawler using .NET Core and C#


 

React

React v18.0

Our latest major version includes out-of-the-box improvements like automatic batching, new APIs like startTransition, and streaming server-side rendering with support for Suspense.

Many of the features in React 18 are built on top of our new concurrent renderer, a behind-the-scenes change that unlocks powerful new capabilities. Concurrent React is opt-in — it’s only enabled when you use a concurrent feature — but we think it will have a big impact on the way people build applications.

Check out the article: React v18.0

 

React Libraries for 2022

React has been around for a while. Since then, a well-rounded yet overwhelming ecosystem of libraries evolved around the component driven library. Developers coming from other programming languages or libraries/frameworks often have a hard time figuring out all the libraries for creating web applications with React.

Check out the article: React Libraries for 2022

 

An Introduction to the useId() Hook in React 18

The useId is a new hook introduced in React 18. The useId hook helps generate a unique Id on both the client-side and server-side.

The previous one was called the useOpaqueIdentifier hook in React. The useOpaqueIdentifier hook had many bugs and limitations, so the useId hook was delayed.

In React 18, all the issues were resolved correctly, and the React team introduced the useOpaqueIdentifier hook with the new name useId.

Check out the article: An Introduction to the useId() Hook in React 18

 

Concepts That Every React Native Developer Should Know

In 2015, Facebook launched React Native, a JavaScript library that enables the development of mobile apps that run on both iOS and Android using React.

Since then, the framework has seen an ongoing increase in adoption by the mobile development community used by tech giants such as Microsoft, Uber, Spotify, and Pinterest.

Developing large-scale projects can be challenging, and we should build a strong structure and concepts at the early stages to create a stable development environment.

Check out the article: Concepts That Every React Native Developer Should Know

 

This Pattern Will Make Your React Hooks Cleaner

So you don’t have to redo work.

Check out the article: This Pattern Will Make Your React Hooks Cleaner

Software Architecture

ZEN and the art of Reliability

Zendesk’s reliability principles and the real-world stories as we transitioned from a humble IT help desk software to providing mission critical systems for enterprises.

Check out the full article: ZEN and the art of Reliability

 

Please put units in names

There is one code readability trap that is easy to avoid once you are aware of it, yet the trap is pervasive: omitting units. Consider the following three snippets in Python, Java, and Haskell:

time.sleep(300)
Thread.sleep(300)
threadDelay 300

How long do these programs sleep for? The Python program sleeps for five minutes, the Java program sleeps for 0.3 seconds, and the Haskell program sleeps for 0.3 milliseconds.

How can you tell this from the code? You can’t. You just have to know by heart that time.sleep takes seconds, while threadDelay takes microseconds. If you look it up often enough, eventually that knowledge will stick, but how can we keep the code readable even for people who haven’t encountered time.sleep before?

Check out the full article: Please put units in names

 

On building scalable systems

In software engineering, scalability is the idea that a system should be able to handle an increase in workload by employing more computing resources without significant changes to its design.

Check out the full article: On building scalable systems

 

I built a receipt printer for GitHub issues

I have a lot of side projects on GitHub. Some of them are kind of popular, and I tend to get issues posted from time to time. The problem though is that usually they kind of get lost in the mix of my emails, or I forget to go through my repos and add new items to my todo list.

I've been occasionally writing new issues down on sticky notes whenever I see a notification for an issue, but I always wanted an excuse to streamline the process a bit more. After seeing a receipt printer spitting out orders while grabbing some take-out the other day, I wondered if I could use one to print out a ticket each time an issue was added to one of my repos.

Spoiler alert, it worked!

Check out the full article: I built a receipt printer for GitHub issues

 

BBC Online — A year with serverless

Its been a little over a year since I published my last two blog posts, in which I outlined the process we went through to choose the technology for BBC online and the steps we took to optimise serverless for our use. Recently my colleague Graeme has published a blog post on the organisational challenges we’ve faced in delivering this project.

Check out the full article: BBC Online — A year with serverless

 

Episode #128: Serverless-First Engineers and the Flywheel Effect with David Anderson

On this episode, Jeremy and Rebecca chat with David Anderson about the importance of being Well-Architected, what companies must do to embrace a serverless transformation, the evolution of Serverless-First engineers, how to accelerate your organization to the "modern cloud" with his new book "The Flywheel Effect", and much more.

Check out the episode: Episode #128: Serverless-First Engineers and the Flywheel Effect with David Anderson


 

Filipe Teixeira

Filipe Teixeira

Hello, I'm a CS Engineer with 5 years of experience and a passion for technology. Currently I work for Microsoft as an Azure Cloud Engineer.
Any opinions expressed are solely my own and do not express the views or opinions of Microsoft.

Comments (1)

wave
  • ᎳOW jսst what I was looking for. Came here by sеarching for newsletter

    ᎳOW jսst what I was looking for. Came here by sеarching for newsletter

    12:28 AM - Wednesday, April 6, 2022

    WOW just ѡhat Ι was looking for. Came here by searching for newsletter

  • Leave Comment

    wave

    Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

    Press ESC to close