May 16, 2023

Mobile first css media queries

Mobile first css media queries to adjust UI controls for various resolutions:
@media (min-width:320px) { /* smartphones, portrait iPhone, portrait 480x320 phones (Android) */ }
@media (min-width:480px) { /* smartphones, Android phones, landscape iPhone */ }
@media (min-width:600px) { /* portrait tablets, portrait iPad, e-readers (Nook/Kindle), landscape 800x480 phones (Android) */ }
@media (min-width:801px) { /* tablet, landscape iPad, lo-res laptops ands desktops */ }
@media (min-width:1025px) { /* big landscape tablets, laptops, and desktops */ }
@media (min-width:1281px) { /* hi-res laptops and desktops */ }

May 2, 2023

Installing .NET on Android

This runs .NET natively
not in a vm
not in a container
no need to have root access or jailbreaking your android
.NET runs natively on android in user space

Install Termux apk on android
pkg install proot
pkg install proot-distro
proot-distro allows to install linux which runs along with android os. This is not a vm so we get native performance.

proot-distro commands:
    proot-distro list - show the supported distributions and their status.
    proot-distro install - install a distribution.
    proot-distro login - start a root shell for the distribution.
    proot-distro remove - uninstall the distribution.
    proot-distro reset - reinstall the distribution.

Following linux flavours are supported:
  1. Alpine Linux (edge)
  2. Arch Linux / Arch Linux 32 / Arch Linux ARM
  3. Debian (stable)
  4. Fedora 35
  5. Manjaro AArch64
  6. OpenSUSE (Tumbleweed)
  7. Ubuntu (22.04)
  8. Void Linux

Following are the steps for Ubuntu
proot-distro install ubuntu
proot-distro login ubuntu
apt install wget -y
apt install ssh -y
apt-get install -y net-tools

Manual installation of .NET:
wget -O
cd ~/.dotnet
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
source ~/.bashrc
Now the dotnet CLI can be used, more on this:

Detailed video coming soon

1. You can install cloudflared (Cloudflare zero trust) and then can host site on your android device
2. Run FTP server
3. Share the files without uploading anywhere

Mar 2, 2023

Amplifieing analog audio output from 3.5mm audio jack with PAM8403 amplifier


In this post we will develop an amplifier which amplifies 3.5mm analog audio output, You can use the circuit as a speaker for PC.


Required Electronic Components:
1. PAM8403 Class D 3W amplifier
2. 3.3V 5.5V FT232RL FTDI USB to TTL Serial Adapter Module
3. 5V 3A USB power supply
4. USB Cable, A-Male to Mini-B Cord USB cable
5. 3W Speaker
6. Jumper Wires
7. AUX Cable

Detailed video here:

Feb 27, 2023

C#: Convert any time to time in any timezone

You can use this to convert any server time to india time or any other time zone
here's possible list of all zone IDs which can be used in this method:

First add reference to NodaTime nuget package which is built by the ultimate Jon Skeet

Pun intended
1. Jon Skeet can divide by zero.
2. When Jon Skeet's code fails to compile the compiler apologises.
3. If Jon-Skeet's program fails to compile they fix the compiler.
4. Jon Skeet coded his last project entirely in Microsoft Paint, just for the challenge.
5. Jon Skeet keeps a daily backup of the Internet on his USB pendrive.

Jon Skeet handles all my exceptions
catch(Exception ex)

here's the method
public DateTime ConvertToTimeZoneFromUtc(DateTime utcDateTime, string timezone)
    var easternTimeZone = DateTimeZoneProviders.Tzdb[timezone];
    return Instant.FromDateTimeUtc(utcDateTime)

string zoneID = "Asia/Kolkata";
var date = ConvertToTimeZoneFromUtc(DateTime.Now.ToUniversalTime(), zoneID);

SkeetOverflow link:

Jan 28, 2023

Lifetime unlimited money through manual SWP in mutual funds

The ₹1 lac example:

  1. Invest a lump sum in multiple high performing equity mutual fund e.g. ₹1lac
  2. Wait for 1+ year - yea! Let it grow for sometime
  3. Withdraw ₹1k per month on a fixed date (to minimize loss: withdraw only if mutual fund returns are greater than or equal to 13%)

More realistic example

Suppose you have ₹1k society maintainance bill:

Real-Time excel calculations

With initial investment of ₹1,00,000
Here you can see I have withdrawed ₹1,64,759 in 10 years
and still ₹87,361 is remaining in the account
If you keep withdrawing infinitely still money remains in the account
Download Withdrawl plan


  1. mutual funds are subject to market risks, market down huwa to samjho paisa gaya
  2. works well if you choose the right mutual fund and start SWP after one year.
  3. Most trading/mutual fund platforms do not allow auto SWP of mutual funds, here's BSE circular Hence manual SWP needs to be done.
  4. its just a theory, try at your own risk

Jan 20, 2023

Ethical hacking: Hassle free logging of IP address of any person


In this article we will write static HTML and javascript client side code to log the IP address of the person just by sending him the web page link.


PostMail: used to send email using javascript. used to get IP address and geolocation details at client side javascript

First Let's create simple jQuery plugin to send GET the CORS resource hosted at
With recent version of jQuery it forces us to follow CORS policy so I am using plain JavaScript

jQuery.getCORS = function (source, func) {
    var xmlHttpRequestObject;
    if (window.XMLHttpRequest) {
        xmlHttpRequestObject = new XMLHttpRequest();
        if (xmlHttpRequestObject != null) {
            var sUrl = source;
  "GET", sUrl, true);
            xmlHttpRequestObject.onreadystatechange = function () {
        } else {
            func("Error creating XmlHttpRequest object. Client is not CORS enabled");

Following code retrieves the IP address of the user at client side

$.getCORS('', function (data) {
For example following is response from ipapi for google ip address:

Now lets get API key from PostMail
Go to the site, enter your email address and after submission you will get link in the email.

POST request to send email from javascript using postmail API

var data = {
	"access_token": "PostMail Access Token Here"

data['subject'] = "Send email from javascript";
data['text'] = "This is test email";

    function () {
).fail(function () {

Final version:



This code is available on github, editable at stackblitz⚡️


How to send an email from JavaScript:
IP geolocation API:

Note: I am not affiliated with PostMail or