Debloating my Xiaomi Redmi 8

11 Sep 2020 | Kolappan N | Android
It is no secret that MiUi is bloated with a lot of apps and has ads all over the place. Here is how to debloat MiUi. This debloating does not affect any core features or system update. Removing Apps It is now possible to remove apps from mobile phone without...

Creating Atom (RSS Like) feed for Jekyll blog

10 Aug 2020 | Kolappan N | Jekyll
Jekyll is a great platform for developing your blog. It has many features that are geared towards the usage of blogs. It was a surprise to me whn I found that the Jekyll blog does not have any RSS/Atom feed by default. But fortunately it is easy to add a...

Minifying & Optimizing static websites using GitHub actions

03 Aug 2020 | Kolappan N | CI/CD GitHub SEO Web-Technologies
If you are using GitHub to host the repository for your static websites, you can use GitHub actions and GitHub marketplace apps to optimize your static automatically. The GitHub actions is a great CI/CD tool and here is how I use it to minify my static sites such as this...

Improving the performance of Disqus (Lazy loading, selective loading)

02 Aug 2020 | Kolappan N | Disqus SEO
Disqus is a great commenting platform. It provides a great deal of control and it’s free tier is not heavily limited making it an ideal choice for small and medium size blogs. After trying out few of the alternatives, I decided to implement Disqus on this blog. After installing Disqus,...

Publishing PWA to Microsoft Store

27 Jul 2020 | Kolappan N | PWA Web-Technologies Microsoft Windows
As you might have noticed, this blog is a PWA. Since, it is now possible to publish PWAs into Windows Store I thought why not publish my blog. It is not super useful to anyone but hey, it is a PWA and why not try it. Here is how it...

Cons of using a Stateless password manager

17 Jun 2020 | Kolappan N | Opinion
What are Stateless Password Managers? They are password managers that generate password based on certain values. For example, they will generate password using your email, website / app name and a secret phrase. The idea being that you will only need to remember a single secret phrase and the passwords...

Migrating from .Net Core 2 to 3

04 May 2020 | Kolappan N | .Net
I recently migrated my .Net Core Biolerplate template from .Net Core 2.2 to 3.1. It is a relatively easy process. If you are planning to upgrade the .Net Core version in your project then I recomend checking this awsome guide from Microsoft. Some of the major things to look out...

Using GitHub security policy

20 Apr 2020 | Kolappan N | Best-Practices GitHub Security
Why do we need security policies? We cannot recieve security issues the same way we recieve bugs. That way our security issues will become visible to all before we fix it. That’s why GitHub allows you to create a security policy. Using security policy Security policy is a markdown file...

Getting free js.org subdomains for your Javascript projects

19 Apr 2020 | Kolappan N | Javascript
Do you know you can obtain a free sub-domain under js.org like your-project.js.org for your javascript projects. I obtained it for one of my projects. It is one of the coolest sub-domains you can get for free. But your project must be related to javascript to avail the subdomain. Here...

Decreasing Jekyll build time

19 Jan 2020 | Kolappan N | Jekyll
I have started using Jekyll for my personal website sometime ago. As I started to add more and more pages the build time for Jekyll started to increase. I started looking for ways to decrease the time taken for build. Here is what I have done so far to improve...

Dynamic and Object in C#

23 Nov 2019 | Kolappan N | C#
Dynamic and object data types in C# are very similar to one another that the C# compiler converts all dynamic variables into object datatype. That’s right, the dynamic type only exists during compilation. So, how are they different from one another? Compile time checks No compile time datatype checks are...

Productivity tips for Windows Terminal

21 Nov 2019 | Kolappan N | Windows Windows-Terminal
The all-new Windows terminal is great. It has a lot of customization options, it utilizes the GPU(finally), and is more modern looking. Here are some productivity tips to get the most out of the new terminal. Set default profile Windows terminal supports many profiles. The default profiles include command prompt,...

How to unlist a NuGet package?

11 Nov 2019 | Kolappan N | Nuget
Unlisting a NuGet package means that the package will no longer show up in search result. You can unlist packages you have deprecated, or packages that are work in progress, etc… To unlist a package, Go to NuGet website, click on your account menu and click on manage packages. Alternatively...

How to deprecate a NuGet package?

30 Sep 2019 | Kolappan N | Nuget
NuGet recently announced that it is adding support for package deprecation. This was a much needed feature. Here is the guide to deprecating packages on NuGet. Steps to deprecate Go to Manage Packages page in NuGet website. Select your package and click the edit icon. You will find a deprecation...

Discards(_) in C#

26 Sep 2019 | Kolappan N | C#
Sometimes you might have to create a variable in C# code that you will not use, like that out parameter that you don’t need. It would be nice if you don’t have to declare a variable just for the sake of it. Well, Discard solves this problem. Discard is represented...

Replacing div tag with schematic tags

21 Jul 2019 | Kolappan N | HTML Best-Practices
When we are starting to write HTML it is common that we use the div tag a lot more often. Containers, sections, footers, sidebars, headers, etc… are all wrapped up into a div. While there is nothing functionally wrong with this, it does not add any schematic meaning. You can...

Refactor as you code

13 Mar 2019 | Kolappan N | Code Best-Practices
Refactoring a code refers to the process of altering the code without changing its functionality. Usually, it is done to reduce technical debt or to standardize our code. Sometimes code refactoring is viewed as a separate task that is done in a scheduled manner. Refactoring should not be a separate...

Optimising images in a website

12 Mar 2019 | Kolappan N | SEO Web-Technologies HTML
Images are a huge part of a website which consumes a large chunk of bandwidth for a site. Larger images can significantly slow down a site. Hence optimizing image is a key part in site speed up. Image optimization is not just about compressing images. There is much more to...

String.Empty, string.Empty and “” in C#

28 Dec 2018 | Kolappan N | C#
All the three above mentioned codes have the same value in C sharp, the value of an empty string. What is the difference between them and what must be used? Let us discuss These values are identical such that, String.Empty == string.Empty == “” will return true. Equating various empty...

Edge Switching To Chromium Is Not Bad, It Is Actually Good

07 Dec 2018 | Kolappan N | Opinion Microsoft Microsoft-Edge Windows
Microsoft recently announced that they are going to replace their browser’s rendering engine with Open Source Chromium engine. This news has received some mixed reaction. But there is a lot of good news and here are some of it. Better built-in browser One thing we all can agree is that...

Key takeaways from Linkedin site speedup meet

06 Oct 2018 | Kolappan N | SEO Web-Technologies
I attended an event of website performance organized LinkedIn, India conducted on 06, October 2018. It was an extremely useful event and I would like to share some key things that I learned. Linkedin site speed meetup banner image 1. Analyze and record everything The first thing is to record...

Constants and static readonly variables, A Comparison

10 Aug 2018 | Kolappan N | C#
There are two ways to create a immutable variables in c#. One is by using static read-only functionality and the other is by using constants. Today we are going to see which approach is better. The main difference between the two is that the static read-only variables are initialized in...

NOLOCK is not bad

07 Aug 2018 | Kolappan N | SQL Database Best-Practices
All over the internet when someone asks about using NOLOCK they are flooded with responses that say not to use it, never to use it, etc… But NOLOCK is not as bad as it is made to be. It is infact really good when used under right circumstances. NOLOCK can...

Best practices for writing SQL stored procedures

18 Jun 2018 | Kolappan N | SQL Database Best-Practices
Below are some of the best practices / code conventions for writing SQL stored procedures. 1. One function per stored procedure Always make sure that a stored procedure does only one task. If you are having a stored procedure doing multiple tasks split them. Reason: This makes the code modular,...

Securing your data in Web.config

05 Jun 2018 | Kolappan N | .Net C#
Why use Web.config instead of say database? There are some advantages for storing data in web.config files. There are some things for instance database connection string that cannot be stored in a database. Storing data inside the code as Constants or Enums mean that it will be difficult to change...