TWIL: January 9, 2022

Welcome to 2022! This week I highly recommend you to listen to end-of-the-year geek outs by Richard Campbell and Carl Franklin on the .NET Rocks podcast. Also a lot of stuff on Redis cache and an article on DevOps for Quantum Computing. Enjoy!


Podcasts

.NET Rocks

Episode 1772: Space Geek Out 2021
It’s the end of the year and time for a Geek Out – actually, three! With so much geeky goodness to explore, this is the first of three Geek Outs to come out in rapid succession, starting with SPACE! Richard talks about how amazing 2021 was for spaceflight – with a record-setting number of space flights from China and the US. China had a huge year in space, including landing a rover on the Moon and launching a space station. Then there are all the amazing science missions including DART, Perseverance, and the James Webb Space Telescope. There’s good news and bad news on the rocket development front – and then there’s the ISS. The space station is getting old, and the conversation is growing about building multiple replacements. With spaceflight getting cheaper, more things are going to fly – perhaps even us, one of these days!

Episode 1773: Pandemic Geek Out 2021
Part Two of the Geek Outs – all about the Pandemic. The conversation starts out talking about the Omicron variant and how the pandemic has changed since the 2020 Geek Out. The biggest thing that has happened is having 3.8 billion people vaccinated – not quite half the population, and not enough for herd immunity yet. But progress is being made, and there’s more to come. Richard also dives into the power of the innovation that mRNA vaccines represent – a new tool for humanity to fight all sorts of illnesses. Finally, the show wraps up with a discussion on the supply chain crisis. Nominally brought on by the pandemic, there have been supply chain issues for years, exacerbated by lockdowns, illness, interruptions, and a huge backlog in container traffic. It will get resolved eventually, but that have been some changes coming for a while that will be felt for years – whether that is good or bad is yet to be determined!

Episode 1774: Migrating from ASP.NET Web Forms with Veli Pehlivanov
Ready to migrate from ASP.NET Web Forms? Carl and Richard talk to Veli Pehlivanov about his work helping organizations modernize their ASP.NET Web Forms applications. Veli talks about finding an appropriate migration strategy for the application, often keeping the existing app in operation while modernization efforts happen piece by piece. The challenging part in that scenario is aspects like security – can you share authentication from the older app with the newer? Sometimes it’s necessary to build shims to keep things in sync, and while they seem temporary, often they are run for many years. Migration isn’t easy, but the alternatives are worse – plan to take the time!

Hanselminutes

Episode 820: Multi-Platform Apps with Uno Platform’s Jérôme Laban
Uno Platform is an open source cross-platform graphical user interface that allows WinUI and Universal Windows Platform (UWP)-based code to run on iOS, macOS, Linux, Android, and WebAssembly. Scott talks to Jérôme Laban about the importance – and the flexibility – of this Uno Platform and what it can do for you.

Episode 821: Quitting your Job to Build a Game Studio with Bria Sullivan
Bria Sullivan is the CTO and Founder of Honey B Games. She took the leap and quit her job at Google to chase her dream full-time! Since then she’s created a number of successful mobile games including Milk Tea Mania and Boba Barista Idle. She talks to Scott about taking that leap, how she did it, and how she plans to grow in 2022.


Quantum Computing

DevOps for quantum computing
Quantum computing applies the unique behavior of quantum mechanics to information processing. This approach provides dramatically faster compute than classical computing, especially in areas like optimization, simulation, and machine learning. However, quantum computing components have a different development and operating model than that of classical software. A quantum computing application is in fact always a hybrid application that consists of classical (orchestration) and quantum (quantum algorithm) parts. DevOps has specific requirements for both parts. This article discusses the DevOps requirements for hybrid quantum applications. DevOps provides a repeatable, high-quality process for building, deploying, and monitoring software.


Redis Cache

Caching patterns
When you are caching data from your database, there are caching patterns for Redis and Memcached that you can implement, including proactive and reactive approaches. The patterns you choose to implement should be directly related to your caching and application objectives. Two common approaches are cache-aside or lazy loading (a reactive approach) and write-through (a proactive approach). A cache-aside cache is updated after the data is requested. A write-through cache is updated immediately when the primary database is updated. With both approaches, the application is essentially managing what data is being cached and for how long.

Active-Active Geo-Distribution (CRDTs-Based)
Active-Active Geo-Distributed topology is achieved by implementing CRDTs (conflict-free replicated data types) in Redis Enterprise using a global database that spans multiple clusters. This is called a “conflict-free replicated database” or “CRDB.”

Active-Passive Geo-Distribution
With Redis Enterprise you can create Active-Passive Geo-Distributed deployments using the “replica-of” capability. This unidirectional replication capability allows you to synchronize data between source and destination databases, placing the data physically closer to the user for low-latency read access. All writes to the source database are replicated to destination databases. However, writes to the destination databases are not replicated back to source databases.

Redis Enterprise Cluster Architecture
A cluster, in Redis Enterprise terms, is a set of cloud instances, virtual machine/container nodes, or bare-metal servers that let you create any number of Redis databases in a memory/storage pool shared across the set. The cluster doesn’t need to scale up/out (or down/in) whenever a new database is created or deleted. A scaling operation is triggered only when one of the predefined limit thresholds has been reached, such as: memory, CPU, network, storage IOPS, etc.

Highly Available Redis
Most NoSQL deployments use three replicas to ensure high availability (HA). From a high-level perspective, the first replica is usually used to store your dataset, the second for failover purposes, and the third to serve as a tiebreaker in case of a network split event. Because DRAM is expensive, maintaining three replicas can be extremely expensive. Redis Enterprise, on the other hand, allows you to have a fully HA system with only two replicas, where your tiebreaker is determined at the node level by using an uneven number of nodes in a cluster.

Redis Replication
At the base of Redis replication (excluding the high availability features provided as an additional layer by Redis Cluster or Redis Sentinel) there is a very simple to use and configure leader follower (master-replica) replication: it allows replica Redis instances to be exact copies of master instances. The replica will automatically reconnect to the master every time the link breaks, and will attempt to be an exact copy of it regardless of what happens to the master.


Miscellaneous Tech Stuff

Database Sharding vs. Partitioning: What’s the Difference?
If you’ve spent time researching scalable database architecture techniques, chances are that you’ve run across the terms “sharding” and “partitioning.” So what is the difference between these two concepts? Now, at first glance, these two terms and concepts might seem rather similar. This is because sharding and partitioning are both related to breaking up a large data set into smaller subsets. The difference is that sharding implies the data is spread across multiple computers while partitioning does not.

Difference Between TCP and IP (With Table)
The working of a computer network between several devices is determined by a certain way or protocol. The set of rules that are executed so that data broadcasted between several devices in a similar network is inferred is known as a network protocol. A network protocol enables the devices that are connected in a similar network to communicate with each other irrespective of the differences between their interior processes or design. Two of such network protocols are 1. TCP or the Transmission Control Protocol, and 2. IP or the Internet Protocol.

Things you should know before using AWS SQS
As SQS being part of serverless architecture — AWS makes it so easy for you to scale sending hundreds or thousands or way more messages, forget about choosing instance size for message broker. But that comes with a cost, and you should know these tricky things before putting your bet all in it.

Web API on .NET 6
.NET 6 is released on Nov 8th 2021 claiming that, .NET 6 is the fasted .NET yet and available with visual studio 2022 along with C# 10 for development. Lets see what has changed from .NET 5 to .NET 6 for web API developer.


Cool Stuff

This Is the Number 1 Sign of High Intelligence, According to Jeff Bezos
Jeff Bezos founded one of the most successful companies of our time and sits atop a personal fortune of some $200+ billion. I think we can all agree that by any meaningful definition the guy is pretty smart. It’s also obvious he has a talent for surrounding himself with other smart people who can help make his vision reality. How does he find them? It’s a question he addressed when he stopped by the Basecamp offices a few years ago, the company’s founder, Jason Fried, reports on the Basecamp blog. And the answer Bezos gave was the exact opposite of what most folks would expect.


Have a great week! Happy learning!

Photo by SpaceX on Unsplash