Skip to main content

Posts

Showing posts from 2021

How to Make a Custom URL Shortener Using C# and .Net Core 3.1

C# and .Net Core 3.1:  Make a Custom URL Shortener Since a Random URL needs to be random and the intent is to generate short URLs that do not span more than 7 - 15 characters, the real thing is to make these short URLs random in real life too and not just a string that is used in the URLs Here is a simple clean approach to develop custom solutions Prerequisite:  Following are used in the demo.  VS CODE/VISUAL STUDIO 2019 or any Create one .Net Core Console Applications Install-Package Microsoft.AspNetCore -Version 2.2.0 Add a class file named ShortLink.cs and put this code: here we are creating two extension methods. public   static   class   ShortLink {      public   static   string   GetUrlChunk ( this   long   key ) =>            WebEncoders . Base64UrlEncode ( BitConverter . GetBytes ( key ));      public   static   long   GetK...

c# Copy an Azure Storage blob into Subfolder or Subdirectories

 Copying All Blob of given Container into the same container and under subfolder? Here are few key points about the copying blob in Azure Storage Account: When you copy a blob within the same storage account, it's a synchronous operation.  When you copy across accounts it's an asynchronous operation. The source blob for a copy operation may be a block blob, an append blob, a page blob, or a snapshot. If the destination blob already exists, it must be of the same blob type as the source blob. An existing destination blob will be overwritten. The destination blob can't be modified while a copy operation is in progress. A destination blob can only have one outstanding copy operation. In other words, a blob can't be the destination for multiple pending copy operations. To copy a blob, call one of the following methods: StartCopyFromUri StartCopyFromUriAsync We are using  .Net Core 3.1 Step  1 :  Install-Package Azure.Storage.Blobs -Version 12.10.0 Step 2:  use ...

Challenges of Microservices and When To Avoid Them

 When not to use microservices? Your defined domain is unclear or uncertain Improved efficiency isn’t guaranteed Application size is small or uncomplex Challenges of Microservices Microservices could be more expensive than monolithic applications. A poor design may lead to: Increased latency Reduced speed of calls across different services A cascading failure may overwhelm your server Poorly breaking down a module into microservices  Handling Distributed Transactions in the Microservice Running overproduction Disclaimer: following above screenshots from pluralsight.com

What Are Deployment Strategies?

 What Are Application Deployment Strategies? An application deployment strategy is a way to upgrade an application with the new version of code. The aim is to make the changes without downtime in a way that the user barely notices the improvements. In this post, we are going to talk about the following strategies: Recreate : Version A is terminated and then version B is rolled out. Ramped (rolling-update/incremental): Version B is slowly rolled out and replacing version A. Blue/Green : Version B is released alongside version A, then the traffic is switched to version B.     A canary deployment consists of gradually shifting production traffic from version A to version B. Usually, the traffic is split based on weight. For example, 90 percent of the requests go to version A, 10 percent go to version B. Canary : Version B is released to a subset of users, then proceeds to a full rollout. A/B testing : Version B is released to a subset of users under specific conditions....

How to fix Kubernetes CrashLoopBackOff

  How to debug/troubleshoot and fix Kubernetes CrashLoopBackOff? Step 1: run  kubectl describe pod <REPLACE YOUR POD NAME HERE> will give us more information on that pod: kubectl describe pod nginx-5796d5bc7c-xsl6p --namespace nginx-crashloop Name:           nginx-5796d5bc7c-xsl6p Namespace:      nginx-crashloop Node:           ip-10-0-9-132.us-east-2.compute.internal/10.0.9.132 Start Time:     Tue, 11 Aug 2021 19:11:05 +0200 Labels:         app=nginx-crashloop                 name=nginx                 pod-template-hash=1352816737                 role=app Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"nginx-crashloop","name":"nginx-5796d5bc7c...

Angular 10: Can't bind to 'ngIf' since it isn't a known property of 'div'

 Error: Angular 10: Can't bind to 'ngIf' since it isn't a known property of 'div' or can't bind to 'ngif' since it isn't a known property of 'ng-container' angular 11 Solutions: Make sure to import CommonModule from the module that is providing your component. for me I had to import CommonMudel in the  TestComponent import { CommonModule } from '@angular/common' ; import { BrowserModule } from '@angular/platform-browser' ; @ NgModule ( { imports : [CommonModule], declarations : [TestComponent] } ) class MyComponentModule {} BrowserModule vs CommonModule BrowserModule provides services that are essential to launch and run a browser app. BrowserModule also re-exports CommonModule from @angular/common, which means that components in the AppModule module also have access to the Angular directives every app needs, such as NgIf and NgFor. CommonModule (all the basics of Angular templating: bindings, *ngI...

Flutter: How to fix “unexpected element found in ” error?

 All of a sudden, I am started getting this build error in my Android project: Error: unexpected element <queries> found in <manifest> Understanding  the Issue: To understanding why this happens see the above @CommonsWare's answer This is because <queries> tag was introduced with new package visibility options for Android 11 and upwards (SDK 30+). Because of that, you need to update your build.gradle with a version that includes this changes. Below is a list of supported gradle options. The best solution to deal with these errors is to Upgrade your Android Gradle plugin and Update Gradle You’ll have to update your Gradle version to one of the compatible versions that have the latest query tags (which were introduced with Android 11). How to Fix it? To Update the Android Gradle plugin Specify the plugin version in the YourAppDirectory/android/build.gradle file. The plugin version applies to all modules built-in that Android Studio project. The following e...

Flutter: mobX store code generate not working

   mobX store code generate not working I had a same issue and I was able to solve with following steps. I had this problem today and put these versions and it worked, in case anyone needs You need to follow just couple of steps. Here is my pubspec.yaml package version for the mobx Step 1: Flutter (Channel stable, 1.22.6) mobx: ^1.2.1+2 build_runner: 1.10.1 mobx_codegen: ^1.1.0+1 Step 2: run following commands flutter clean flutter pub get flutter packages upgrade flutter pub run build_runner watch --delete-conflicting-outputs I trust it will help you :)

How to downgrade flutter?

 How to downgrade flutter? You can downgrade using following setups: Git Hub Source Code :  Flutter is versioned using git. Changing the Flutter version is as simple as changing git branch. Using Flutter Channel: flutter channel <branch> (example: flutter channel stable) This command is used to change between branches – usually stable/dev/beta/master. We can also put a specific commit id from git. Flutter Downgrade Command: flutter downgrade <version> (example: flutter downgrade v1.22.6) This command will use a specific version number. You can have the list of the available version numbers using flutter downgrade or here Then run  flutter doctor and Flutter will take care of downloading/compiling everything required to run this version.

Angular: Cannot Get /

  I was facing this issue, while visiting http://localhost:4200 **'. Then, when I opened up a web browser, I navigated to localhost:4200 and a web page with the following text were shown: Error :  Cannot Get / Solutions: This is related to most of time is incorrect syntax  Step 1: open terminal and run "ng build" Step 2: See the command output and you must find some syntax issue related to your code. Go ahead and fix your issue that problem will be gone