{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/122","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"Programming is an excellent exercise for your brain as programmers deal with never-ending situations like bugs, compiler, issues, deadlines…","fields":{"slug":"/engineering/lets-take-meme-break/"},"html":"<p>Programming is an excellent exercise for your brain as programmers deal with never-ending situations like bugs, compiler, issues, deadlines, languages, etc. During all these times, other than the phenomenal codes, we produce MEMEs and a hell lot of MEMEs</p>\n<p>MEMEs can light the environment for every programmer in the world. On that note, there is a famous saying-</p>\n<p><strong>“If debugging is the process of removing software bugs, then programming must be the process of putting them in – Edsger Dijkstra”</strong></p>\n<h2 id=\"here-is-our-developer-picked-list-of-21-complied-meme-for-you\" style=\"position:relative;\"><a href=\"#here-is-our-developer-picked-list-of-21-complied-meme-for-you\" aria-label=\"here is our developer picked list of 21 complied meme for you permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Here is our developer picked list of 21 complied MEME for you:</h2>\n<h3 id=\"1-always-ready-for-new---kunal\" style=\"position:relative;\"><a href=\"#1-always-ready-for-new---kunal\" aria-label=\"1 always ready for new   kunal permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Always ready for new!!! - <a href=\"/author/kunal/\">Kunal</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 225px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 200%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"1\"\n        title=\"1\"\n        src=\"/static/08f4fdb7d36c3cc372f5929f5ac00d68/3684f/1.png\"\n        srcset=\"/static/08f4fdb7d36c3cc372f5929f5ac00d68/3684f/1.png 225w\"\n        sizes=\"(max-width: 225px) 100vw, 225px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span> </p>\n<h3 id=\"2-nothing-changes-with-time---tanvi-jain\" style=\"position:relative;\"><a href=\"#2-nothing-changes-with-time---tanvi-jain\" aria-label=\"2 nothing changes with time   tanvi jain permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Nothing Changes With Time - <a href=\"/author/tanvi-jain/\">Tanvi Jain</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFTUlEQVQ4yyWU61PaZxbH+W/25b7uzL7ZF912p9N0067TJDPNNm2yTUyrNV4aG1dNghovK94FQ0CjQqMigqAUkHu4CCjIRQFFQTBNxd2ocRPbpp/+6j4zZ87z5pzzPc/5PEe0s/8jB6envOQNRcEX8gWOT07YPHlFqFgivFdipbhPWLgnc3lSGwn290u8eHHIfqlEfneXw8NDDo8OWd7aQKR+LMGwpGc1v409EUWrmcC4OMtjsxltKkuvL0J/KEXvcoZxsxWn1cjM9BRjSgWLCwbmZmeQDQ9ht9mQGFWI9IoHTI908KD5FuI7FaikLdRXl1P2URnmGSXqMQnivm6GXCGkgo27lhlzB1HafSgdPsafhlE4XMiXTEw6FxHVlv+DtjuVNNd+SWfT10g779HSVIu4/iZaodC0VExT+SXa+iX0BRJ0OYL0eGMMCKplsR0GrX5GgkF6o1b08SCiL65d5l81ldRVf0lrYzW1lVepu36F9z44x6Wr17hWfoPLVbU0qjX0uVaQLSeRh9IM++P0+pMMNzQit9iZy2ZZK+QQ3Sq/QldTDd0P6rkjqKy6eYWmzz5Bcv4cnvk5ApkM6lCEvqCQKJxBEcmiXM0iDcUZTW6gHFdh3chQ/PUN8Wwa0cXLlzj3wV8YVI6wsGSm4XYljdXXqf7r29z+8DzpZ3tsHJQYXw7xKBxjZDUt+E3k0TST6Twtc99zoaKOsfl5Yqk1RCqNGulQN4sWE5vPnxHJZjCYdXS0fcP7599nck5LXEBjaWuLmUyWx7E0yugWvc4wUk+QdsUoFz76mLvtnYRCHkSdLfUMS+4zp9eQSifYzefY2s4QCLoIeG1E19cIr0XJFgtknwkcFraJ5XYwu5fQzo6j+07GYFfLWXwkuoxoZuoxD2UD6Oa+w2jSs2i18b3NidFqxv7Uh9sXxCZg4fcFcLsduFxWbAKLdoeFro4OaoRhVlV+hXygA71W4LChR8E33XIaWsRY9XJc6nY8TzrwTj3ArRLjUrWyNDfEvG4ck8mAy2kXEjt56vVgtZixCOZ2u3G7nKgn5Iha+/uQDd7DMt3OT2k1R0v32DE2E9fdJ27oJGzsxW4YJO6bpFDI4nB7WDSZWTAtojcKNm/AIRQ5/fkn1lYciFy6XlY0YkJP7pwlbu2RMD2vI72zw87eD/zn5WviG0mirkliKzYiXgOrfgt+j4mwQ8OTCSVdPX109w0yPaVA5HBa+FH45Ilkgv++OOJ56YBAKMCr0xNOXh7z+8nltkiFdRxvzrNv+pbSmorjgodfn5uZVbVz+bNrlF24iEz6b0ShFf9ZUFKY5Fe36lmNraHRavH6fOTzeU6FDZTd3iThV3EafQTOu5SSswSdJqxqrbAHhqm++U9GhyVsr9uFhAI7WaG92oZ7VNY1UHpRIhKLnRV58+aXM79TKLDuGOCXUBevl9sxjLeheiRDMzLKw/ZulP2t9HSLGR4SFEZWvYxOqvnDH99iORymdPCcQHiF3WKRSDx+BqtFWEsmeT2p3wdlHcK18BCLXkHXfTEVn9bRVt/MjSsVnPvT54j8Aff/VeR2z/zB0REzE4OopiYYEPhsqLiIoqMWzVgfVt0kxol+RmVddN6v5pN3b/Lt1Sa6W+5SdaOOpq+bEOmmZKSiXgIeC17bItYFDXdvX2f0oQRpr5hHwx0CJjrMdjsTKiXtjVXc+LyM9979Oxf/XEPNx82Uvf0Ff3vnU9oa6xHtF1PsZWNsJIQ2t9bJZeIUd7MUcxn2Cnn+9+o1x8fHFIUnSG/ESSbjpDdTpJObJKMZ0okt4qspouE465E4vwGD2M/H2cpfMQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"2\"\n        title=\"2\"\n        src=\"/static/29756dde05314d6c37244af708dcd456/37523/2.png\"\n        srcset=\"/static/29756dde05314d6c37244af708dcd456/a6d36/2.png 650w,\n/static/29756dde05314d6c37244af708dcd456/37523/2.png 720w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"3-heaviest-object-in-the-universe---nitesh-jain\" style=\"position:relative;\"><a href=\"#3-heaviest-object-in-the-universe---nitesh-jain\" aria-label=\"3 heaviest object in the universe   nitesh jain permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Heaviest Object In The Universe - <a href=\"/author/nitesh-jain/\">Nitesh Jain</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.84615384615384%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElEQVQ4y42Sa1PaQBSG+YH9bf3cL1RntAIDjlwcKx2UTsNNUS4SLiapXBIuiaU6FEhCLm93NwQZxWnfmc2c3Zzz7Lt7NgC4uBv8wlldQarURIYfIHHVwQlXQ6LQQKrII5prIvajhtMSjxhXx8PkN0q8hIPMLZLFBsKXN+Dq9zANHQFJfcZ5TYIoXONaeMBxWUL6boC8OERD1pBtyzgnc290kRMUfK11IaozXDTpvx5ZGyLdkDGdGwgsTBudvoJh+gOqlW940oGlYYKXH3FakSBNnqCbFgwyzqo9fMkLeF4YWBgrWLaNVKWHUEHAXDdZXgBErutCm/Rhmjp8/SEJnzJN2LZDM9jalaQhfttl8YrAqAqihiSBUtmOg4BDPo7jbkA+YLY08THdhr6yQHOoioKKRMUDmpYHzN2rSFX7LLZIbYC6Y1Cyowf3gHNiP9l5ZEkvQO0NME+BlS0gTd5A18PeArt0bq+B4n8Afdh7ov+t9X0VRXU3sPrKIZVhGJhMJphOp1A1DaqqsrllWQTqwUukKala/w0wWe29AG2yO3UhSSKCwSCOYzGEQyFEIhHET+KYzWbkyZisgGsNEcm3djjcAlIHsWgUoaMjZLNZcByHm3KZxTzPI3t5gXA4wgrawk+kM989IOn+zjukDulx260W9j7vkeIwQqEwDg8Osb+3D1mWsVwu2dF9OVuN2tllKl3XoSgKu7vRaITxeIxBv88285vjvwAavwv8V5d9RzRv87xeA7e6/BfTjBARrO1baQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3\"\n        title=\"3\"\n        src=\"/static/dcb277d218fa70767e0eb1a887de66db/e5715/3.png\"\n        srcset=\"/static/dcb277d218fa70767e0eb1a887de66db/a6d36/3.png 650w,\n/static/dcb277d218fa70767e0eb1a887de66db/e5715/3.png 768w,\n/static/dcb277d218fa70767e0eb1a887de66db/d9199/3.png 960w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"4-perception---vikram-jain\" style=\"position:relative;\"><a href=\"#4-perception---vikram-jain\" aria-label=\"4 perception   vikram jain permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. Perception!! - <a href=\"/author/vikram-jain/\">Vikram Jain</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 520px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 87.1153846153846%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAEqUlEQVQ4yx2S2VPTZxSG8y/0ttMbb1ov2hmr0zrtKNUWx2VcBgSs1lqtOiwOm8hmkC0ESTCEPezUsAWBsCUhCTthlUACsgVkX0YDKgrY4vb0N158c86Zeb93nvfMEVn6VDhm1YxPVTI4rKHP+pDW9jwM+kS6e/MYsldjtdUyPGFkbLqJ4ZFaJqYrmJ4rFqoZ6/gsozML2KeXUKRlIBqedOJY/pex+Rd0DvXTNWRjdHyJQatd+LDG3LNdbJOrlBZqMJt6mVnZZnbtHfPPwWpfoFodhd5cK8w7qB/VITK29+BYWuVhbRry/GCaLZ109Q3Ta7UxNb/GwvPX9I9MIg/0xevrPaQnyVl5vYtjZYO+bguNBalMzK7ydO0VhioNosvewSyu79AxMEiOJh5dq4mVF+9YWN/i6epLoW7T09tPaZYcmd9NjOZuBrt7kMTepbSoiI4mI3POHWqqq6hLi0Pked2fyUUn9olFdO1VpGl8UAq7sPTYWHS+EQx3GLY5UIcEMTzwGOuYg8rkGO5H+JOSGoMi1Jex2Wc0lhQwWJyM6HpoHOOLz8kpKeaewp/4hyf57eweMuR5bPwHA0/saBLCkRw7QEublMZKNXOPUmkpL6GsKBZZ0DkaaoykpKcgiQ9HdPSHg/idPYPHsZN437xIqOIEV/7YR2FmOSvOV5hMzTTIzqOW/CTECqBAXUFNZio5iZEUpHtRpPQlLD6FEKmYiIRIROcO7Cfw8EHELj8Q+bcX4jCB0i8AS68NS2cnbVVlFMnF+J44QuZ9KbKcIqJjlMQFB2OxSCgrvsed2DhKasuQJksQjY24sDi/n8f9rugavGgzu9HYcBF9gzv1Wnf09acw6E6jb3THbHCnUevGk6HDLM99h916nu7ueuFpGRmpoqJcgejpTCLbW0o2X2Xw8kUuGxuZDFlVtDQXMu1Q8eGDmrc7xaw7swVNnqAtFPo0gU7G8lI2U5Mmurrqef3GQJNejuiZswlh9WxttfJmq0XoLSyvdvBkzMbKSgedXSr6B4o/a1bXDGgN2ThmtIyOtuJw1LG728zwYBHmxgcCTD2i+YUK3n9qoTLdh47yeD7SweZmPR1tSiYmSjl79BDVebG8/9hEtyUNrT4dWVY0fT1ZOKZKGDBnYCpIoEEVx8SkGtGfVz0Ek05G+wuozVQw76jBuV6H97XTwkFnMWQqxJQjFei0tJjFlGvlJEtuU50fRZ9Ari1NwlyrRB0TSm6UJ6Jfj7t+jvnhUzN9uhyWJyo/x9PrZCiSvDEURqORiDE2xmA2RqOSBpEVcIVcVSIRBRoi86tJzkogU3oFZeApRK6nTwoGvWztGHC7e4fYlHC2N3VsvzUhD/dF5n8OVagPLdoQdOUBtCeGkB5xg9gHUdxW5BOcUUlSSiLGmkAKpX5C5EvulP2TxFX/G3xz2Zcvvv0R6+Nspu2l6JRSyhMDeZRwgRldPqbcMIwJflRE3+LuJTeu+tzEP/o2kjte5Eq9UEVfRBTg7UPQ7x54nvHguqcXrkdcmJ2txLlqIEN6lRTxCfLvHSdV/JdwzF4ob7kSf/kQh7/8ip+/34vLL3u5dmofCWHHuXHhAP8DAnfkY1pGqwIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"4\"\n        title=\"4\"\n        src=\"/static/da60f493f3637dfe4c4bfdc23661388f/69902/4.png\"\n        srcset=\"/static/da60f493f3637dfe4c4bfdc23661388f/69902/4.png 520w\"\n        sizes=\"(max-width: 520px) 100vw, 520px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"5-maths-always-a-hurdle----mohammed-modi\" style=\"position:relative;\"><a href=\"#5-maths-always-a-hurdle----mohammed-modi\" aria-label=\"5 maths always a hurdle    mohammed modi permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. Maths Always A hurdle !! - <a href=\"/author/mohammed-modi/\">Mohammed Modi</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 111.84615384615384%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAWABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAUDBAL/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgD/2gAMAwEAAhADEAAAAZtSb2G9tQ8GhZTEV//EABsQAAIDAQEBAAAAAAAAAAAAAAECAAMSIiEy/9oACAEBAAEFAipLsvmJWd2b77Mr+gE0FAn/xAAUEQEAAAAAAAAAAAAAAAAAAAAg/9oACAEDAQE/AR//xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAgEBPwFiT//EAB0QAAICAQUAAAAAAAAAAAAAAAABETEhAhIyQZH/2gAIAQEABj8CUULZR36QjElIlYYktJxR/8QAHRABAAICAgMAAAAAAAAAAAAAAQARIUExYXGBsf/aAAgBAQABPyHKE+YKma1O4WKm63csIXKm82y9F5ZW5je4jPLHnuEcudz/2gAMAwEAAgADAAAAEGzHAv/EABoRAAICAwAAAAAAAAAAAAAAAAARARAhMVH/2gAIAQMBAT8QhrRjg5Vf/8QAFhEBAQEAAAAAAAAAAAAAAAAAEQAB/9oACAECAQE/EAxYMX//xAAeEAEBAAICAgMAAAAAAAAAAAABEQAhMXFRoUGBkf/aAAgBAQABPxCZEza/cenByJVW63cf3GADhsQesYIn2m1nLrBuMYQPB36wFdbUIcPI6KcLzLjDQJrjw7u8bBSmivj56z//2Q=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"5\"\n        title=\"5\"\n        src=\"/static/14a68e5d3ba823b574b031958cab252c/212bf/5.jpg\"\n        srcset=\"/static/14a68e5d3ba823b574b031958cab252c/6aca1/5.jpg 650w,\n/static/14a68e5d3ba823b574b031958cab252c/212bf/5.jpg 768w,\n/static/14a68e5d3ba823b574b031958cab252c/47311/5.jpg 1080w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"6-i-had-a-problem-so-i-thought-to-use-java---indrasen-kumar\" style=\"position:relative;\"><a href=\"#6-i-had-a-problem-so-i-thought-to-use-java---indrasen-kumar\" aria-label=\"6 i had a problem so i thought to use java   indrasen kumar permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. I had a problem so I thought to use Java - <a href=\"/author/indrasen-kumar/\">Indrasen Kumar</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 499px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 65.53106212424849%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADYUlEQVQ4yx2T+VPaZxCH+bnTaWvwSMUDBSQeqBhpYyTEM9ZEI0TBA/hy34e3VogHIoKKikemOmrHOnba6T/59NUfdnb3fed93v3s7Mr6B94RDgaEhQj6/CwuLFAo5Dk9OSGXyz3biYjPz8+5vLwkn98nk8mwvbVFRLwL+bwEvC4CHgnz5w/IZmZEIkDRcOQZupBMktvLcnZ2xl52j2LxmKOjIgeFAqVSicfH/3i4f+Tm6oZENCqAHoJeCY80yztjJzKnPYjP6yckfgv6/SwtLnB1dcXt7Q0PD39xd3fL7m6G42JR5H9zf3vHvTj79/GBjWQIv9shgG6mp8bpeq1GZp8N4PM8Af0EA35RrY+A8OFImHkhPxqLExLVf13b5CRzQHY+yVYsxKrbimNiALdzRlTpZnSkl9a2OiHZ5sEteYlFIwIaJJ3e4vDogkL+RPTrmL3cIblsgXxa9C0cZMNjZ9VpRRrvZ2TgV9F3F3PTE0JuG7X1VcimrRKSw/0MjAtLr8yTWoywFg+wEvawHHKx5LeznYyzkwixZDcTt31izNiBdcSIy2HDLOCdnRoqq8pFhdYn/TYcs5NIsxYSLgu+L5/p6dajN7TT+/4NYx+HSSeiAhgkuxBm3TfHhKmdgZ4W+t/r+TDYTXOLkvIKuQBOebBarM9NtZqHmTO9YbLZwEeVjsGmTl6pNSgaanB/GSObjLEZC5AKSRh0GlSqnzF0qegT8LY2FRVPQOuUE7NlCtvoKPZfhrBoXjPU0ERfg4Z+pQZTo5YOpRJjqwb32DCrPqcAutC3anlRJUfb2kjPW52QrBVAIXnE1IdkGmOuw8hvDS0MqV7RrWxktKmDca2ePqWanrp6umrr0dUpcH0aJB2WmOzvpblWQVeTmpYWNSqtksrKSmSj6naM8hoMZdUYqmuo/+kHdC+qcdT3MK5oY0ihpvdlnbivQl9WKeAKTColb1/WoJdXoPuxjC55ORXff0e5vAzZRijC/tYmy2LubBazmLkguZU0+cQai3MSy04vxc0MO/NLlHZzfJ1fZC0cJZ9Ksx5PsCS2JRWNsS68w25HFvd7+eP6WqzaqdgUJ3ubaf65+ZPSwQGZtXVSYhV/j0Qp5QvcXH7jOLfP9cUFh7u7nIr4/OiQfGaHb6fHrKe2+R/F3BhYmEy8fgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"6\"\n        title=\"6\"\n        src=\"/static/e911b116d29aca75687238ff6046bb1b/119c7/6.png\"\n        srcset=\"/static/e911b116d29aca75687238ff6046bb1b/119c7/6.png 499w\"\n        sizes=\"(max-width: 499px) 100vw, 499px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"7-avoid-handshakes---piyush-kumar\" style=\"position:relative;\"><a href=\"#7-avoid-handshakes---piyush-kumar\" aria-label=\"7 avoid handshakes   piyush kumar permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. Avoid Handshakes. - <a href=\"/author/piyush-kumar/\">Piyush Kumar</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 88.15384615384615%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEjElEQVQ4y62Q6U+UVxSHX6RNq4KNhbYmFoqNVqt1qSKLAm7AsMjIOCwDiDDDOuzVYRnWUUdZrAyDiFWWGZRqbVXSlk1AxSY1adRCqZCgRFNjavlg0rQfZPXpO9OS+Af0Jr+c+7vnueece4XJyUkmJiaYmppiZmYGi5+dnbV6S7ScTU9PW70lZ/FzsnhLbo55+fIlwuPHjxkcHOTRo0eMjIxY9fDhQ2scGxvjwYMHVo2Ojlpl2VvOh4eHGRoassaBgQHGx8exLOHZsz94+vQpT357wosXE2K3WSbFaaanZ8Sppq2ydLd4yyRzfuoVZu5VFgl//f0nz5+P8+z3J/wfS+jrGqCnb4SeW6N0Xh+m8+YwHb2DdHTfofOaqN67XOu+R0/7Xbq6f6GjT8z33afzxggd14de4e7Q1XsPoaiglfLkYgwhUk747kC3Kwht2jHyy86RW9KIpqyJokITRQUX0GdUYJCFU+2/i8Pb/ShUain4j8stbSK3rBnheFQ81avs0b8vULX8dbqiVnFKsgZdZikVhqtUGa9SXn6ByoQDGNYtodzZhiNOAt/Jl2PevYqy+DTKq6+I7BWO17YhfOY8nyRHAaWjDTV+Ltw7upO+HFfSZK7skctQJqWikEvJ+nARqSIXL3K6ze9xu2wbP+a7UxT+KVLZbmLjVSgTUxA0S98gysGWPfYCdbKP6T8cwg9VqRizQti6cwVu2z7Az2s5GpeFxDnaIrUT0Hk5cbtcSn9lMq3acLb7rsTdxxkPn2UIsYsFAu3nESQWTHCxw6DcSas+nZM5Mrb7r8Mz4BMUnitJFosF2tsQvMiGcId5nEn05YtCFS0FCnwl6/HyW4233xoExVI7Ah3fxEuEJW/Z0BC9hr5SH6rjPAgIcCUgwgvZ5hVEL1lIyJIF+IjctoUClQHL6C3xwpS6ldCATUj2eiKRuiLseMeOtfMEVtoKBDstwBi7kcZUN1L9PiI8OoTIpFAi5BIkzu+ywfZfzuft1zgqW02z2hNN8ArC5P4okvYi3x+EEKZSs2W9CxucFrFFnCBsgwORmxaTrckk0XiOBEMzCYfriFbn4eO2mo0ui3F1nI98nQNh6+3ITIokpbYF1YkmEmpMCHmn29A215NuLEGpi0ORGkzgbm+Sa1rJaO0jtaVLvPAtB4xtFJsbyao7gkqfSEy2jMBgd+J1BjIv9pPS3CmyPQh6UzOnei9Rcs7EQbOBmOpE9usyyTG3k27uJuP8NZJPfkVx/VlO91zi0MUWcpvqUNZnElWsJKfpGzLEQuliY7W5C+Hyrzcw3mwk5kQ2SXlaDtYeIsJYSIYIqhuaSDnbRub3X3J+qBPTT18Tf+oAcXka8qv1RBo1qBsvktZoJqXhEsmmdoT2+7eQn84govEIEdlH2XekEolBTXSZjJhjQSgqItFfrqV/7GcSzFpCG7QotJXEigo6mUN4WRj79IHEVEaiqklD2B/qjb85i70dOtLFf1NVfM6OqjikGg/2aN2RlXoQI12LymsjgXVqQroKSTljQn2sHt/qFIJyvQnVuhGa70ZkkQf/AEqrpSvE4V1fAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"7\"\n        title=\"7\"\n        src=\"/static/17e62f6b3e38d9cf9018e22a1a816bc8/e5715/7.png\"\n        srcset=\"/static/17e62f6b3e38d9cf9018e22a1a816bc8/a6d36/7.png 650w,\n/static/17e62f6b3e38d9cf9018e22a1a816bc8/e5715/7.png 768w,\n/static/17e62f6b3e38d9cf9018e22a1a816bc8/d9199/7.png 960w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"8-im-really-unsure-about-my-own-creation---kheenvraj-lomror\" style=\"position:relative;\"><a href=\"#8-im-really-unsure-about-my-own-creation---kheenvraj-lomror\" aria-label=\"8 im really unsure about my own creation   kheenvraj lomror permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8. I’m Really Unsure About My Own Creation - <a href=\"/author/kheenvraj-lomror/\">Kheenvraj Lomror</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 452px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100.44247787610621%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFUUlEQVQ4yx2T61PbVRrH81+svvBNnWldnalaW5fKzZYSciEkQBpSKCGEW0pC7tdfCLlAQi5Q7o5CKShtaXWKWLGlVaE3KbQMOjpeWrW+2tWZHd+5OkLXz57lzDxzznnmzGe+z/N9juz+gw2Wl69x9+5drl69yvXr11lZWWFra0vkl3mw+UDEOovvX+bx4x/46ruHpIbeYm1ji931119sb2+zvbPDHzvbyH766TEb9zdYW1vbhdxbX2d9Y51ffv6ZH3/8nm8efcvtz+4xNnmWaHaYDl+ULimB1ZciNzHDf/74fZf7+59/8tuTJ8geff+QldUV5i9e5Nbt29y8tcqHS1fY3PqC1TsCND2HL5amzRdEU29CfdxIrdnM1Pn3CPUO4Y7m2Pzy613oLvDJzhNx/C87QvY/f/kXt9Y3GZ8+h93XjaHRKgAmilU1FKqqOaqu4eXC1zmm0iGvrKHe1IxXigvFaeYXl/lNlC3796+/srb5OWfmLhGIpWjqcKI/aUZZfYLCMh2HSxW8WlzG4eIjNDS1UFWpxdTQik5rpOioWrxRYGqzYnEEWLl3H5nUn6fR6kJvsqCra6BMWUXR63IKSo9QUnGMCp0Ofb2BhuYT+IIS7eZG3DYPjg4Xp5qd1BnMHDx8hCMaLX0DQ8jUhhOo6oxUWtvR2qwUquVoajVYjDXkyjVMyPUiasnVGuiTuumwtRNwhvDbA3jtfgKeMJYWK6WVVdS3WpCVK9QYPD4MVQ3MNNiYLChn6UAFq8+Xc+OQkoUSNYuvqbhxsJz1gyreLtMS9vgJuTwEXS7yp0eJ509jtIh2GOuQeU5ZWartZO0fBj4ub+B8sZppjZ5so4meQBfhHh/dIiJBNxPxJJ/uL+WiUo836CXg6GTgjSmGhYmugMSxKiWyqZoTzO+roGf8HPmJEfwBO7GURDofJZ2KMJyJMdgbJp+OkhzOkzCbuHNAgeR1EhAtyk5Mc2bpDpmhEdS6KmQfyA3MmTyMXltlfCRPtjdAJhkiGXGTCNrp89tIB51kRS6R6iHaWM/qK0q6PXaCDiv5kTHOLt1k8r0FLFYrshuizIVWP7FML4mIk1TCR0KyM9AfYXwoxdhohrGRjDj3k8jEGVGoWC6oJBD0CIXtpHMZLnx4jbnrn9GTGUT2vnDx3QIF9rCN0bE8428OMTySIp+P0x314nC1YGmtwx/uIpjpYeHFYmaq63GGXAQ62ujL5hifPcfcwjXGZueQZdpbWXuuhBltLR5bM/oWDeXHSyhUvMyhoy/yUvHz7D+0hwNlB8iaW7j7XBExWxte7ymhsInefJbk7LvMXLrMm2dmkYVc7cSNRj7af4xP9pYwu+cVMk/9neTf9pJ8+ln6n9nHwDMvcH5PATf3lZET8+Z2C1hnO95OE8lcitT8IuMXrzA6JYBRu4VIRI8UqyPr0PKWqUyoLWVOW8SMXJSnLOJCzWucaVUJw9rwBFTEYkaiPU1iFpuJdgeZunyFycWPOX1uQSjsFElJSzyuRApW4ZHUOGMKvLEyHGE5jpCcQPIo8SEjqUEbYZ+CRL+eZPo4Pn8jHuG2FHQxPb/A9AfLyMKnzPQmK+lLKYkGq0lGK4lFVEgeOalkBb1xhcjJxRu9MKBRjE65KLNWOC6AvlbeeGeeVC6Nu8vK8MSEALadJGTTIrkrCf5/d4rdpSHk1BAJiLtXTdguoNJJurtbRL4Cv0uPvVMngG0Mir4lBgYYnjpLKOwTQL8dV4sYA5Nw2XIct1l8K0st3mYDPrO4N1XjNmno8XYS9HTRadTga2/GYamnS0xF7+gkz+7dg85YTSw3yP8AJ9zY7mvoh98AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"8\"\n        title=\"8\"\n        src=\"/static/46f57c587678067be0c7b7c2b37ccb96/fcb94/8.png\"\n        srcset=\"/static/46f57c587678067be0c7b7c2b37ccb96/fcb94/8.png 452w\"\n        sizes=\"(max-width: 452px) 100vw, 452px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"9--that-missing-fact---priyadarshan-mohanty\" style=\"position:relative;\"><a href=\"#9--that-missing-fact---priyadarshan-mohanty\" aria-label=\"9  that missing fact   priyadarshan mohanty permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>9.  That Missing Fact - <a href=\"/author/priyadarshan-mohanty/\">Priyadarshan Mohanty</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 537px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 93.10986964618249%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAACXBIWXMAAAsTAAALEwEAmpwYAAADqElEQVQ4y4WUW2ibZRjHcy0IXog3Ew84ER1e6I2IFyITFRWdjCGdV14MYaOWucE8bXhArfNQEFkXpKx2rmnr0iY9uc4k7bJakjRt0i9ps3zJdz4kadPeeC0/3+/bYtduqxd/3tPz/t/n8H/egGma2LaNZVlbIfYtS5y15v7a8m3NG/PbIaDrOoqiYBgG3lxVVX/UxCVF7HmoirUh1q1zz7Y1aprmz1v3AgsLCwSDQdLpNLFYjN7eX4ldniJZ1onmK4QljdFrDqklicnxcYaHh5mbmyMcDpPJZBgaHKKvr494PI4kbAKemx7zFg81Hd0We65NKpVlZjqJ67rIehnFrPpQLQVFQNbKVI0KmqNhOgaBO+XDtuskFsJ83XWCtmNt9MR6aDTraHURal2nYsporvofVEfx4RPeDMPQcZ0m8fQZvly6m7fUJ3h0ZA+v/PIqcqHMtUKJ5OwllktL2I6DLuw1exuh59HmaOA4DeaXxjky9TRv/LiL5zru48gfRxkZj/Jx+BSdPSfQVd23N4S974glUmbpt4Z83VNBajVYWa5ybvAnHu7eTWQpgitkdHzwI74Z/FbIyLoRkbElwls83CTVWV9rUhKSevf8PuaLV2m6dd7pbKM9eBTLcDCtHQhvJnNsB1VUulIRVZdjXBh/VhQoxppbo6v3O144/Tw9f54VDzT9HN6RsNU1lWqVxcUo6fwXXEw8xWcDjyOtLHAlP81r3W9yrLedbG5aPOzuHLKXO8taoyANs2x28GG0neDE9wxNDWCWVU5PdtAX/QRlWRVkDd9+u0q2ycZrsXWqpX7Gio/xQ+Rn+PsfTs58zuu9L3I4tJ+93ft5r38vysqkqGzdl9kOhIYIuYFaSTGavp+vLh6nVt3gcLidTy8fEuHu49DAHt4fu0ucnaRZWxc51P4vhway7CIVD9B5aTeJ7NsMJA5i1g7yYPBJPuh/mUy2g99nojRqtdsXxUvsJjQse1UUJUQi9RIHfnuEe848wK6zD3Fv1zNcSE4IDW6Ib030vOnZb8uhI9pndXWVer1Oo9Hw4Ti2aCsh7GKeq6krnIuHOT8XoVwtsbG2JqJRxOUqdceiZlu4/n96/Z8M5HI5QqEQExMTRCIRRkdHkSSJRCLO8kqJ2eQsUjbP5NgYI2NhEskEOdVkvqISyalEJZ1krkg+t+hLLiDLsviiUiLERby/0YO355F6o/dgoVjgr8ys6O80hVKBsmZQVDXmZZ2s0Kwkl1EVxffwXzpDA5v3zH8yAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"9\"\n        title=\"9\"\n        src=\"/static/efc617d57bd6c90738df4cde44b8a501/b1cde/9.png\"\n        srcset=\"/static/efc617d57bd6c90738df4cde44b8a501/b1cde/9.png 537w\"\n        sizes=\"(max-width: 537px) 100vw, 537px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"10-every-it-administrator---narendra-pareek\" style=\"position:relative;\"><a href=\"#10-every-it-administrator---narendra-pareek\" aria-label=\"10 every it administrator   narendra pareek permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>10. Every IT Administrator. - <a href=\"/author/narendra-pareek/\">Narendra Pareek</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 88.61538461538461%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAACXBIWXMAAAsTAAALEwEAmpwYAAADCElEQVQ4y41UW09aQRDmvzZ9aW360D6a+ND6oGlMa6qSEAVK1QbaiBduIuqBKgQ4yE1uavBCrIkKSKHAgcPXnaFQvKWd8J2zu2f4dr6dmdVAWLvdRqlUQuGsgP39fciyjEwmg+vra1xeXiKfz/O8Xq8jkUjAarUinU5jdnYWHo8HsVgMjUaDqKDpdDo8sNlsmJiYwPj4OAwGAxO7XC7Mzc1henoaRqMRXq8X4XCYx+Sj1Wpht9vZ5+Li4jZhLpeD2+2GHJY5QiKMRCKMaDSKZDLJUWazWZ4T8eHhIdKpNGLRGCvpEx4dHTHh6ekpms0mKpUKqtUqyuUyarUaO5Kk8/NzkD+tUfTZTBbFYhGBQAA+nw83NzddQtuaDRazBcvLyxwJSZr8MMmOfr8ftWoNKysr0Ov1aLVafLYkeXFhETqdDhaLBfPz8xyARlVV/hORLS0tYW11jcdmsxkOh4OJ9vb24HK6eE4bkmRpW4LT6cT6+jq2trYgSRIr5QgVRWFJ9KaM0yZkTaWJeqPOx0DrBPKjec+nZ8RD3/tJufuRZP7LyK+HnmnoQWeSSqU4MScnJyiXyrC717AT2cJR/oAdKaJBgsfAhGdnZ1xPJpOJC7VSrsDkmMKY/Rm+OufRK/7On6gw8L5rD0tWO1h1foMvbEf+NNuNcEDaY2R9yVRLVLBUqIVCQdRTCVaHyF4wCeeOjI3dAFrt5r1zu4s+IZ0d1RG1n8eziePjA7wzWvFS68brWQnDU1/ws1LsS1fb6gC6VdHp7nZfMs3pEnB4NhDJ5hBIiJYTl8N/pJxJOUJqbIqS+pHIyNwuOw4TceTiXSREj8dDYSRDMpLhLvbliFgLIZdJgenET0Mk1GLUSjPTM/BKXvy4vsTq2CR2n45g58Uodp+/gX/obR+BoVF+fxfrvifDML8aQVXpBqK5urriW2RzcxPBYBAhseNePIZV/Sdsv9fBO6UXMDB8H8WYINYkmus+w6cVpbZghqK2/yblIYvEo6ijjarIbk1VbqGqNvGr04IiNLbvnP9vim4NsG3X38YAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"10\"\n        title=\"10\"\n        src=\"/static/fa3fc149cdf28b47202a082f38a98806/e5715/10.png\"\n        srcset=\"/static/fa3fc149cdf28b47202a082f38a98806/a6d36/10.png 650w,\n/static/fa3fc149cdf28b47202a082f38a98806/e5715/10.png 768w,\n/static/fa3fc149cdf28b47202a082f38a98806/d9199/10.png 960w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"11-imma-genius---abhimanyu-singh-rathore\" style=\"position:relative;\"><a href=\"#11-imma-genius---abhimanyu-singh-rathore\" aria-label=\"11 imma genius   abhimanyu singh rathore permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>11. Imma Genius! - <a href=\"/author/abhimanyu-singh-rathore/\">Abhimanyu Singh Rathore</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66.60000000000001%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADmUlEQVQ4yx2T6U+TBwDG+8VPS5w7zJJlJi5bdPEPMCZLzJIlDszmVBbZpsi4ZA3lhlKOcshR7nJW7tKWvi093p5AW1rLXcpRDhVBMClky/bB7NO+/9bsD3h+eY48EkGwYTSasdlcOJ1eZmYCjI5qmdLrcViNeB0W3C43Xn8Q0ethWpxGP6VDre6gsbGekdERLE4nJrsdvehGYrHOI3rC+AJRwgt7rESO8IeiCEaB2JKTl5EZYrv7bB7/ReTwCDHo4tqVL7h2+VOuXr7El5c+o2d4hNBODME/mwC6VpgJ7vB8+YD12Bmz4V0qf0/DNtDEm+054i+CnMRPOXz3L7GzU1798ZLvk27y3rlzXPzoIhfOf0yRooyVowNMwQASo2MJh3/jf9DWwd/0DguUJV1lfVhJbN5I/NUCx/E4m/ETNk52efvPOzR1BXz71eecf/8DPrzwCXXtDQT31rEtPkeidyxi823gTQAXoq8RzB66M2/hq81i1fKMaFjkTQK49nY74WKD3T9PELXtyG5eIf2nu6j6DJjmAohLIqMuE5Jx+wIW3xa2wBZPsrLJfphCZvJ1fE+zUFVVkPZLKtHdLcJHc/j2Zlk8DmL3D9FdnkV0eZmt2CGRnTNCW68ZcwpIhi0hBN8mgneV7Me/kpP2gMd3v0NXlUFFkQxFUS4TggH/Cxfe2BSz+wI6+yAWi4e5wDpe3xqu0A6hjVPcS0dIBgU/k541hJlVCnMzefgghfrSQsR6GRW5aUhzMmjsaMez52buwM7Mtgllk4r8Gg21agvdE7PoPeuI4X2mgwdIenRuxsRFRiwB8rIzuZN8C7WqFZf6KbWlMh6lpqCoVtJnMtNrGKNt6BlSeRvSyn5y5F3kN0zSORFk3BHFNL+PpHnYitYewmZxoSgs4OsbN1A3t7DoEBOd5nA7KZmSwlKUNU3UKZTIFQ0UVHVRUqfh3m9yUqXNlHXYaR0NMCCsIOkdM9OldWMe13EYDjGUiJef8YiWsnzS79+jukROW+sAU1oD45pByqubKK7X8ENGDde/+ZH0whaylXqKVFZqe5xIDH2dTOkM9FSV018sY8kxzWRCqCzIoyMnneaycopKlEQim2g0w2TIasgp7+Z+ai7Jd1L5ObMYqaKXyg4jefVaJHWlUhxmHR67gGPaQMAr4rab8TsTH0582TAxgnlKj9VqJb+4IuFQRUtilPH+dpS19TyRFtDQ3E1n3xhZ8h7+A1iMzsp5sw19AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"11\"\n        title=\"11\"\n        src=\"/static/2f2b76260318e583002ef97fae33b369/0b533/11.png\"\n        srcset=\"/static/2f2b76260318e583002ef97fae33b369/0b533/11.png 500w\"\n        sizes=\"(max-width: 500px) 100vw, 500px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"12-my-logical-thinking-as-programmer---ankit-singh\" style=\"position:relative;\"><a href=\"#12-my-logical-thinking-as-programmer---ankit-singh\" aria-label=\"12 my logical thinking as programmer   ankit singh permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>12. My Logical Thinking as Programmer​​​. - <a href=\"/author/ankit-singh/\">Ankit Singh</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 480px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 125%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAACXBIWXMAAAsTAAALEwEAmpwYAAADhklEQVQ4y3WVWU8iURCF+fW+GV99mBFUUGE04ALI4oIryKLsLbtroj4YjRqXaM39qqcZDdDJpbvvrT516tSCK5VKSafTlkqlIvV6TSzLklqtKlWzrFNLKtWKNBoNY9ORRrMh1WrVnNeMbV1arZY0m00973a7ApZrb29PyuWiBAJ+8fl84vN6xe12SzQaMXsB8Uy5JRaLS6lckt3dlPz+9Vu8xi6TzaoTAFm9Xs8G5Af0U8OmbtX/ebeMUcs8182eZc5OlYWzLPPebrcVyGE5AMgmRvZq9d9hgRyZTFpyuZy5ZzTskYA7Oztyfn6unh36GDngJycnRpKyvLy8yOvrqzw/P0s+n9c9B/QH4NbWltFmV18A5847QDBPp9Py8PAgHx8f8vb2JlyAw3SohrFYTLa3tzVrhILnlZUVIVmXl5cSDoclaxJQKBQU/ObmRt7f3+Xo6Gg4YDwe10RcX1+r+ISRTCYVBCNYr6+v6+KdC7vj4+PhgDDBM6CElEgkVHyAYM3+zMyMMoQ99pA4OztT3QeSAtj+/r565UJwDqPRaD8psAHYa2o0GAzJ8vLyD3YA9wE3NjY0PEJ+enrSj/x+v8zNzakTmMEWpzAndKLAAUnDKSxhTDJdHJIE7oCPj4/L5OSkhEIhXSQMtoSK4/n5eZmdnZXFxUX9hlZFCpwnkwmbYalUUh1hwHPFGBA6i3Ap7GKxqOyoCjJM2VByh4eHcnBwoHvBYNDuFAobLTomBBW5ZYvMQiu70O2wumrT1IHCO+esi4sLjcKVMvqgQ8ig/2EYTHtkyj1la1bISblaVmfdXkcikbBMezwS8AdGTxt+YFIzowstWEwWe0jU+qOLsPP5nAkto2f/e3nItIE6BnhhAeD0MoDoWyrZTAFDr++DYQCQAwyd5YwrgMns3d2dfL8gkB01D2kzyoLyQDc2V1dXNXsky57onX6CHh8f5fPzc3QvUwoc4hVmhMxAAPDq6qr/jDNYMb7u7+9HTxtqCcHRC1DAST93wqZT6B7q9fb2VkcXDijooRpSlDwwurg2NzdVR6cLcEYUgCPFwsKCrK2t9YfywHAA0BkIX19fmlFKh6qHMZ1C93CnRZk0aO5Mded/pl+HMCEhsILR2NiYTExMaL+yj1YAMCBgAjsWmn4fEHSKDgdQCZNsc6dX+ZhD9viQKOjzSCSijpaWljQCxhgaozcRcP4XN0OwQIPN1dMAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"12\"\n        title=\"12\"\n        src=\"/static/ce430bf1882a235044353d4b4d098275/e85cb/12.png\"\n        srcset=\"/static/ce430bf1882a235044353d4b4d098275/e85cb/12.png 480w\"\n        sizes=\"(max-width: 480px) 100vw, 480px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"13-html-is-a-programming-language---hitesh-kumawat\" style=\"position:relative;\"><a href=\"#13-html-is-a-programming-language---hitesh-kumawat\" aria-label=\"13 html is a programming language   hitesh kumawat permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>13. HTML is a Programming Language - <a href=\"/author/hitesh-kumawat/\">Hitesh Kumawat</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 119.69230769230768%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"13\"\n        title=\"13\"\n        src=\"/static/c976299e6494257936e25d7e87b08998/37523/13.png\"\n        srcset=\"/static/c976299e6494257936e25d7e87b08998/a6d36/13.png 650w,\n/static/c976299e6494257936e25d7e87b08998/37523/13.png 720w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"14-programmers-while-sleeping---versha-gupta\" style=\"position:relative;\"><a href=\"#14-programmers-while-sleeping---versha-gupta\" aria-label=\"14 programmers while sleeping   versha gupta permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>14. Programmers while Sleeping​. - <a href=\"/author/versha-gupta/\">Versha Gupta</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 756px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 99.07692307692308%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFV0lEQVQ4yx2UeUzTZxzG+/+yxP3nXLaZLdnmlhnw4igFQc6CGDePLc57UwSLyqVTKRXKjRBBRenKISqIooh4cbQUS2spBaHIIcWDSx0omgkxWeZnb/tLnvzevMnvk+d5v8/7k7SnRjNcW46uKI3uy1rG9NcZbalj0tDAo1vVtP11nJ7KkzyoKeGV5S5T5tu86WxmwlDPBVUc51UHqM06RHXWYW4mbUZiEx9Mj47yYnqK/wBzVw+T0zMMPnnG+N+vcD7dPXZuN7XQO+Rg9OWUeA/jGJvkTGkF+5IOkZKeifJ4EZpDMUg6ilIZ7u3h2bPHDA7002400tTURHNLM2ZTO8NDQ0xOTqATe04Z9HqMbW08djgoL9USH3eA/YoYdu6JoWD3L0isp9MZdzyio8OCvbeXfnsvuoYbmPU67D09DA4OYmxtxWaz8eHDB2ZnZ12aGJ8g+WgyKpWK9LRUjqZlUKTYgsRceIx/X4xja7mDvuo8pYcO0lZ0CnvFOfRni3nUpmfUZqXhej3Pnz9nYGAAu91OeXk5mzZtYv/+/STEx6HKzCE/Sjg0FihhZpqXXRZMJwrp1Zyhr7ICm7YMa/FZurWlPLUYUR45jFqtJjk5mZSUFHJyclAqlRw7doyDiQkEyFej3hKJpKskh7cjw3SUl3G/7irdJRqs1dVY62qZvNFARVwilrorJAugUpniAkZFRbFj+w72KWJpMxi4crmGhd9+j3JDCJLOkmxmHEOMNN2ms7KS6yo15rMaBququJWqpjpDzVOr2RUr73geubm5LqdKAV4dHkGsQsHayEiWS305HbsViaU4i5nHI8w9fcTc8EOmOkyM39MxZTEz1HIXa00VY2JganHwhUVFFBQUkJ+fT5FYK5OVLHFz58tPF7AzSkGxE1iXmkBDzVUM12rpaW3B2FBHr0FHn9FAZ9MddFUXaaw8z96YaOLj44mLiyMxMdG1TkpMYtuWrWxY9zMbN28nY7M4Q9O5E4yICpiMbbS3G7l/34zB0Orqo9lkwiLcORzDeHl64ikkk8nw8/Nj5cqVrFq1yiVfHx8WuS0lyn+JqE1FITZ7P2YBMOj0WExmOjusosCtWC0d3Gs10NfXR0hICP7+/gQFBbmAwcHBBAYG4uXlhdTbC3cPKQfCpEj0mjym5t7zbvYd069f8+rNG2bevmV6ZobZ9+/5Z26O7q4uAoQj/4AAF9gJCw0NRSqV4i/2/WQ+uHtKUQR5IKlRbMd+pwnLrQYeNDbSWFpK05lirGLiVlHmh20ivuhksJ8AinhOYFhYmAu4dOlSl+uQoECkq4LZF+qF5MbuzYxoKxgo03IrLoFzv+/iXmoa1tR06vco6BQ16tdoCfT1I1DElQuYXC4nIiICb29vV2S3xT+yxFvG3mDhsF6xlbFLtQyVl9J++hRPzmp5UHgSQ14eXZm5NMbGc1epcgGdkZ1DcLpywpxDWrNmDWuF5s0X1fFZjKT5yF4c1TWYsrMxVlRgFI4sp89gKztHT1oW2k2/0ZqVTYCYpMzXFz+hAAF2OluxYoXrHDeuX88n8z9jl587ksY/o5m4Vsf4pSrs+QV0Z+fSlZFNlzqTOwmJ1Ivfk12jYbWIGx4uF7dDjjw0hMiIcMLDQvlh0XfM+/gjFiz8ivhwHxH5YAyd5RfoP3+B5zdvM1R9ib6LVQxdvUrfhYvoVOnos/Lxkq5kma+IGhCMT2AoPkGhyILCcPeS8fnX3/DF4uXsChJDaYmO4N6RPzAf3olFGYVJrDtTY+hIicKQtI32xK3oYn9FGexGcpg76kgPMtd6kyGU/pM32etkpK/x4Ih8GWXrlvM/WtotP1X3tRwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"14\"\n        title=\"14\"\n        src=\"/static/73aa746c803e377ecf26b5c409dad0c2/8ae3e/14.png\"\n        srcset=\"/static/73aa746c803e377ecf26b5c409dad0c2/a6d36/14.png 650w,\n/static/73aa746c803e377ecf26b5c409dad0c2/8ae3e/14.png 756w\"\n        sizes=\"(max-width: 756px) 100vw, 756px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"15-programmer-swag---gaurav-bewal\" style=\"position:relative;\"><a href=\"#15-programmer-swag---gaurav-bewal\" aria-label=\"15 programmer swag   gaurav bewal permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>15. Programmer Swag!! - <a href=\"/author/gaurav-bewal/\">Gaurav Bewal</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 480px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"15\"\n        title=\"15\"\n        src=\"/static/2d05765ce4e0fcde30c2369301f38812/e85cb/15.png\"\n        srcset=\"/static/2d05765ce4e0fcde30c2369301f38812/e85cb/15.png 480w\"\n        sizes=\"(max-width: 480px) 100vw, 480px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"16-qa-life---rakesh-pareek\" style=\"position:relative;\"><a href=\"#16-qa-life---rakesh-pareek\" aria-label=\"16 qa life   rakesh pareek permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>16. QA Life!! - <a href=\"/author/rakesh-pareek/\">Rakesh Pareek</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 75.07692307692308%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAACiElEQVQ4y21TWXLaQBDVCWIgBMcb3sACY4tFYCQ2gRCLAS94S5xypfLlr3zkBjlCqnIG3yKHe+nXQpBU8dHV0zM9b16/7jGS+wWUHA8Vp4WdkxIS6TxiOybiezm8lzXjDwcFJPdP1a+z6Cx1eAYjeWDix+sz/rz9xrlto9IaYXD1hPbwBpfzLyi6fcR3zf8uRwAkE+1tHlv4KGYk0sf4/u0Rb79+Yj9/CrPSQa07heUGqHoT5KueXkgdCoM1zFbg4dqI7ebgBdd4+fqK1JGFje2slhwTVok9ln+CDTGyjKnPLby5tnxjL1dBpugiW2oib7dRaQ5QFju76CJXaS3j02oH5UYgeQ2UGn09o86JhdYRSyMrYB3Rqz97EP0G4h/RvbyD409R88YYz59Vz1pnjM7oFk5vitbgWuPDwoVYDduZ4orhseXAnz5gcP0J9e4E9d4EvcmdgpAlQWh2e6iPsGH0ZMh70/sXITJcaZgRQIIFkshDXhhKTMYEJVuWXXR9zSO4Ve/B7c+UKY3jwtKXDJnEUkuiUaHmoS1xb3Kvccj4Hs3gSiWpdkb6CB/zxnMdLcqweXQeMkznbJ01Cp+xXLBJFJ0NYHwiTSg3A1hOD2a5qc0hsOX46gnG9VbGCgFJU3/EP93iyHAsmMC9cGTMZR7j+MLrSMk6mkeDr7IcdjTqIsvhmiW5/gy2iE6NWR6ZX3Qv0ZIc6je8+awMIzJGOl/Vyw0BJRiNglM3+mh8KAsb05A97vOO64ePt4e3+u205KOzujJhAg/4el0skCb5BJVLdnukY8MxYpPImM3jR+DeuXR9qeGBDCYBWQo9yyBLdrM1CDvpCMjq0RtpVBPvtjKLbxh+yUjDv9G/4q3jY6erAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"16\"\n        title=\"16\"\n        src=\"/static/1e0e4249644e76b22b31c0de507c6973/e5715/16.png\"\n        srcset=\"/static/1e0e4249644e76b22b31c0de507c6973/a6d36/16.png 650w,\n/static/1e0e4249644e76b22b31c0de507c6973/e5715/16.png 768w,\n/static/1e0e4249644e76b22b31c0de507c6973/5a190/16.png 800w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"17-infinite---hridayesh-sharma\" style=\"position:relative;\"><a href=\"#17-infinite---hridayesh-sharma\" aria-label=\"17 infinite   hridayesh sharma permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>17. Infinite... - <a href=\"/author/hridayesh-sharma/\">Hridayesh Sharma</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAADvklEQVQ4yw2RWVDUBQDG/xaYnBsphBQiwyGCkHINEMO1LMcCArsuh7iCDizHIjrBLoSjIQSIyjkIiMaxoJJyBisqGJcMSE6Zo9BB49RDhTY9UPZQD7/24Xv95vv9PqElN5Z86X4uFyWhK0qkTRVJt1rCubQAtIpAUkP3UZElpjozApXEg08z/BjQxjJdfQidOpKKJC9K4j1IC9iN2tAjzDaqyYgJ4fPSY9w5ISPCxZaLVcVMPv2G+6vfcu+ndXp0rbQUSEmJDqA8PZwbHyupPhJO40k5A/pBhmYmubXwgPbeNoSzKjnbt9sg9XEjL8qf7abGqMo03PlulRvzs+i//4Gh8V4ay5TscnJHFRdMzwkFfTlxqJQyRp4/4/bKMiubmwzP3kWQJ4ZiYWKChZkpNjus8N5tQ/3lC4w9fYJu+h7ja2tMzQ9ytjQLG1sHRG+LSAzaR16oJ8ezUhhYXuTqxCjXHy4wNDWKcCxditk2E95/R4SNpTlRPi703O5m8eUGMy/WWdjYYHjyOkdkYizMRVhamCMSifBytKWuVot+9TmDjxYNRGuMLhgWRsVKsbS0wszEjDeMtpEU4smNu8Ms//Wah4ayJ//+R+egDg93N7aamrPVxBQjo60kB+6h/coFljf/ZvHVKx6//oehh9MIaZF+xHg7kBLshEbuR29RJLrzhXQ1n+ZSZREV5YWcK0olJ96fnGg/ssSeyCJ8KEoOoklzmL5rNUz019HTWUvVGTXCxZxYMqO9+eSomK7iJAY0cbTnR3EmO57KQhm5GVLqTh6iJF1CQaQveQoJw0tzjM3pyVVEoE3wpzU3jo6BbnQj/QipcRH4e7kzWlXAWHE6yZ4OnNSomft9gy9/+ZmvDCi39Dfx9XJBEARSD8uZ2XjJ/Is1wsICMTHgH1fEcvvZKl98/QjBbud7WBlEV6RJaMqIxN78LWIVCoZXlugcH2HCIPvqzWuEHXAmYI8tDaVKxu4P0dHVTPyHXnjs3slH2TJmlu7RP9yL4LDL3vCaBXa21rxrvQPjN7dwRJXNyp9/8NmknsqmC0zqaqhQiukoOEhNloTmtjpa288T5+NEfXMNl1qqkfm70jfYjeDk7EqCOIiGAhnJIb6cSgggLS+f6w+mcHB0pkQezosrGhqOSpHud8XX5wATP64z8ngJeZAb9TVayk+fIj3lIK1t5xE8PPZia21NptiP/PhgmpTBlJ3REhwhwVjYgq+bExXyMGIMDj9wtKMsN4X53341KFkkZK89tc0XDanjdKkarSaf/wF/KVOvU8xECAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"17\"\n        title=\"17\"\n        src=\"/static/486a8dc5475edb227208bc6aba37c7c5/e5715/17.png\"\n        srcset=\"/static/486a8dc5475edb227208bc6aba37c7c5/a6d36/17.png 650w,\n/static/486a8dc5475edb227208bc6aba37c7c5/e5715/17.png 768w,\n/static/486a8dc5475edb227208bc6aba37c7c5/d9199/17.png 960w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"18-python-lover---aman-agrawal\" style=\"position:relative;\"><a href=\"#18-python-lover---aman-agrawal\" aria-label=\"18 python lover   aman agrawal permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>18. Python Lover!! - <a href=\"/author/aman-agrawal/\">Aman Agrawal</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 602px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.11960132890366%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAAsTAAALEwEAmpwYAAACaUlEQVQ4y41TyXITMRDNB0BRCY5tvMRjjz1eZ9PIs3hsj5fxFjtOUhU48Qecc+bABU78AFc+heLGLz1a0tjAjUOX1Gqp+/V7rYt+uESyeUC4vEOUHsDiNZx4hfH6AWyyRbQ4IJzvMfDnMMMU/vwWE4oFtA5nOzTMGAXdxZuWJ+2iZkXgyU4+Nil5nx72/BnYeIMB+WyygUsFejyBGSzg0T1hoqg7XsNg038T5lsMVzULOc3Cdd3BdUNZTrOlL9Zc3ZaP8tn5OZadi0TFJpN2Ue0HqA8ilI2hDJSEGVzZX76MGafYnzunN2UjQ6i7IywPT2i5U7wmpPmGKysLy1P1QtOViMW5Wh2JSnZTV/tLzcXLGqO7hLBmj9APlmhYMdpegg5LFJfBHHUivNoL0OUzNO2xXA13At0aSa6FUDVzgkMa4+P7KaodQqhRMCaFPRJhKtQm9fyElKS9SFLu+EoMijvjFabbR1jhQk7GfHOPupPi0weOn19taH0uRFFkF6l/0dbJRHuiBcGLap3Jc9FiMdsrn+4YDKWOrUSpUEuV9lBydpL+f+wkRMlQRQt6JkqHeFgd3yJO7+QliUZXlSWSbFzOYpxXhlc3Hi5rHq40QtjKxqZJ6g6GCyJ4QXwNoQ1GUqCbLiEnv2GOaAImZGM5Xm2PyO9GsDyO4y3HasmRzDzkGgIhJewR4dPVkb7eHiF9MytKEZOfEOHJ7pG+2B58pr5ZlO6xvX+HXnjA52cHv757+PHNxpdnjhdVRhRQwmLbI7kDFImPCikqJ76l9uW2GHZ+Jr9ACMQw53UOkzvwAgd+aKNjES26QvgbW9GTZhi9Z8IAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"18\"\n        title=\"18\"\n        src=\"/static/ea58877c7c9a876c684900782b68a362/32056/18.png\"\n        srcset=\"/static/ea58877c7c9a876c684900782b68a362/32056/18.png 602w\"\n        sizes=\"(max-width: 602px) 100vw, 602px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"19-whats-your-address---vijay-singh-shekhawat\" style=\"position:relative;\"><a href=\"#19-whats-your-address---vijay-singh-shekhawat\" aria-label=\"19 whats your address   vijay singh shekhawat permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>19. What's your address? - <a href=\"/author/vijay-singh-shekhawat/\">Vijay Singh Shekhawat</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 460px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 123.04347826086956%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"19\"\n        title=\"19\"\n        src=\"/static/7298e05136c9f8ff10336ed4b196ccd1/08a84/19.png\"\n        srcset=\"/static/7298e05136c9f8ff10336ed4b196ccd1/08a84/19.png 460w\"\n        sizes=\"(max-width: 460px) 100vw, 460px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h3 id=\"20-gamer-and-programmer---chinmaya-pati\" style=\"position:relative;\"><a href=\"#20-gamer-and-programmer---chinmaya-pati\" aria-label=\"20 gamer and programmer   chinmaya pati permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>20. Gamer and Programmer - <a href=\"/author/chinmaya-pati/\">Chinmaya Pati</a></h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 403px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 74.44168734491315%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsTAAALEwEAmpwYAAADJUlEQVQozyVR204bVxSdT4rUmERAIClmLmdmzm3uc+zBBkx9weMLYHOzjWMnKA0ugaZgaBO1TSpFSanSVG2l5KXuJ6QvzWvpRTynH9CNerS1tfY5Z++1tZZ0cjxsrDWajfXmWmMFTq22Vq/XKtWVSrxardSWl+txuV6pVsvl2iWAHNfjOC4WHgz2pPVmM+vYy0FYjdKxEItCpAJ/IZOJRJhJiUgE6cAPHDvlexC+bTmczYnQ5SwuFaV2bSWtaBn/sp5z3DzhglIRBBbBLufQBvcOozYlrnUJiI5ci1uUrdaq0lbuI0XRAs/HukExZYYZId1mFCMNGphpAOAEG6oKHzghUBJd12S1XCxIG0tLCCGfW75lu5QxQtO6bshJTU6amqorszPTUxxjixITaYaqIVmFfP2DRG4+K23klsavjqmqZjEG2bw101hYbLe2tjc3O61Wt926//E9jomanJmenAhcu7m6cj0xRgy8/8lA6rc61SBVCsO8H1ZEOs/50ydf/zoavXj+4tX3L0ej0fv3/1bjOAr8XDZTr8Qb6w3fdcql5cODQ2kwGPR7vbut1l63t9vu3Ll9u7vT3e3f3e33793p93Z2ep1Ot7Xd67Qhb69vbDbXYJ2tZhOeJHDPUBGnNCWExTg3MTV0UBhUNVSF4UvBCNKwBoJpSFOQolB40jTPcaVSoUCQEXqeZ9m+7Tjcsgj1LAtGUNMAwzg2QXZiIJvgyDCIrFDTBI78Yk7K55Z0RY1CYVMG4XLLAX6MMRhGCTV1YHYoeGUIpAuE0qoKQ7WknI3mpHKhqMzOAi34DqpCOJT/v7ZNAFMkzwI/Mc00bK5qoara2Lw5ORmJlFQulm7emGImDj0fTLYZ92wb2Bg2YRAzTZszl8EwbCSTWUXOcibPfAhuzWcy0lw6Gh+7Nj0xaWjoxvjEranpwd79n3/68buzs1c/vDw7+/bN6zcg88RY4loiEQlxsL9/9cqV3PzCV18+lp4/e3Z89NnJ8Pjxo0cAhsdHv719++f5+e/v3v39z1/n539cXFyMRr8cHjw4HQ6/OD35/PTk08ODo4cPv3n65D9i+19RL3zytwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"21\"\n        title=\"21\"\n        src=\"/static/3b4dea4a312b01bf07b331a2b4afe9eb/045fd/21.png\"\n        srcset=\"/static/3b4dea4a312b01bf07b331a2b4afe9eb/045fd/21.png 403w\"\n        sizes=\"(max-width: 403px) 100vw, 403px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>If you have better ones, reply in the comments below and we’ll include them.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"September 04, 2020","updated_date":null,"description":null,"title":"Let’s Take A MEME Break!!!","tags":["MEME","Programming","Humor"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7241379310344827,"src":"/static/89b49574235e0c317d2219ca5e10b6d9/1c1a5/cover.png","srcSet":"/static/89b49574235e0c317d2219ca5e10b6d9/69585/cover.png 200w,\n/static/89b49574235e0c317d2219ca5e10b6d9/497c6/cover.png 400w,\n/static/89b49574235e0c317d2219ca5e10b6d9/1c1a5/cover.png 550w","sizes":"(max-width: 550px) 100vw, 550px"}}},"author":{"id":"Ashish Sharma","github":"ashish8947","avatar":null}}}},{"node":{"excerpt":"PKCE is an OAuth 2.0 security extension for public clients on mobile devices intended to avoid a malicious programme creeping into the same…","fields":{"slug":"/engineering/pkce/"},"html":"<p>PKCE is an OAuth 2.0 security extension for public clients on mobile devices intended to avoid a malicious programme creeping into the same computer from intercepting the authorisation code. The <a href=\"https://oauth.net/2/pkce/\">RFC 7636</a> introduction discusses the mechanisms of such an attack.</p>\n<p>PKCE has a different specification of its own. It allows applications to use the most reliable OAuth 2.0 flows in public or untrusted clients - the Authorization Code flow. In order to efficiently use a dynamically generated password, it achieves this by doing some setup work before the flow and some verification at the end of the flow. </p>\n<p>This is important because getting a fixed secret in a public client is not safe.</p>\n<p>In this blog, we will see how PKCE is useful in authorization code flow for OAuth and OIDC and how you can use this with your OAuth and OpenID Connect providers.</p>\n<h2 id=\"what-is-pkce\" style=\"position:relative;\"><a href=\"#what-is-pkce\" aria-label=\"what is pkce permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is PKCE</h2>\n<p>Proof Key for Code Exchange as known as PKCE, is a key for preventing malicious attacks and securely performing code authorization flow.</p>\n<p>I would say, PKCE is used to provide one more security layer to the authorization code flow in <a href=\"/oauth2/\">OAuth</a> and OpenID Connect.</p>\n<p>PKCE is mainly useful for the client-side application or any web apps that are using the client secret key and used to replace the static secret used in the authorization flow.</p>\n<p>This flow basically works with two parameters <strong>Code Verifier</strong> and <strong>Code challenge</strong>. Let's see what are these parameters, how we use them, and generate them.</p>\n<h3 id=\"pkce-code-verifier-and-challenge\" style=\"position:relative;\"><a href=\"#pkce-code-verifier-and-challenge\" aria-label=\"pkce code verifier and challenge permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>PKCE code verifier and challenge</h3>\n<p><strong>The code verifier</strong> is a cryptographically random string using the characters A-Z, a-z, 0-9, and the punctuation characters -._~ (hyphen, period, underscore, and tilde), between 43 and 128 characters long.\nOnce the client has generated the code verifier, it uses that to create the <strong>code challenge</strong>.</p>\n<p>For devices that can perform a SHA256 hash, the code challenge is a BASE64-URL-encoded string of the SHA256 hash of the code verifier.</p>\n<h3 id=\"generate-code-verifier-and-code-challenge\" style=\"position:relative;\"><a href=\"#generate-code-verifier-and-code-challenge\" aria-label=\"generate code verifier and code challenge permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Generate code verifier and code challenge</h3>\n<p>Here you can see the examples to generate the Code verifier and code challenge in different languages. Either you <a href=\"/oAuth-implemenation-using-node/\">can find Node</a> and <a href=\"/golang-maps/\">Go Packages</a> for this but I would recommend you to not depend on any package for such small things.</p>\n<p><strong>NodeJs</strong></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">var</span><span class=\"mtk1\"> </span><span class=\"mtk12\">crypto</span><span class=\"mtk1\"> = </span><span class=\"mtk11\">require</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&quot;crypto&quot;</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">function</span><span class=\"mtk1\"> </span><span class=\"mtk11\">base64URLEncode</span><span class=\"mtk1\">(</span><span class=\"mtk12\">str</span><span class=\"mtk1\">) {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> </span><span class=\"mtk12\">str</span><span class=\"mtk1\">.</span><span class=\"mtk11\">toString</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;base64&#39;</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        .</span><span class=\"mtk11\">replace</span><span class=\"mtk1\">(</span><span class=\"mtk5\">/</span><span class=\"mtk6\">\\+</span><span class=\"mtk5\">/</span><span class=\"mtk4\">g</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;-&#39;</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        .</span><span class=\"mtk11\">replace</span><span class=\"mtk1\">(</span><span class=\"mtk5\">/</span><span class=\"mtk6\">\\/</span><span class=\"mtk5\">/</span><span class=\"mtk4\">g</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;_&#39;</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        .</span><span class=\"mtk11\">replace</span><span class=\"mtk1\">(</span><span class=\"mtk5\">/=/</span><span class=\"mtk4\">g</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;&#39;</span><span class=\"mtk1\">);</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">var</span><span class=\"mtk1\"> </span><span class=\"mtk12\">verifier</span><span class=\"mtk1\"> = </span><span class=\"mtk11\">base64URLEncode</span><span class=\"mtk1\">(</span><span class=\"mtk12\">crypto</span><span class=\"mtk1\">.</span><span class=\"mtk11\">randomBytes</span><span class=\"mtk1\">(</span><span class=\"mtk7\">32</span><span class=\"mtk1\">));</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk10\">console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">log</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&quot;code_verifier: &quot;</span><span class=\"mtk1\">, </span><span class=\"mtk12\">verifier</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk15\">if</span><span class=\"mtk1\">(</span><span class=\"mtk12\">verifier</span><span class=\"mtk1\">){</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">var</span><span class=\"mtk1\"> </span><span class=\"mtk12\">challenge</span><span class=\"mtk1\"> = </span><span class=\"mtk11\">base64URLEncode</span><span class=\"mtk1\">(</span><span class=\"mtk11\">sha256</span><span class=\"mtk1\">(</span><span class=\"mtk12\">verifier</span><span class=\"mtk1\">));</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk10\">console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">log</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&quot;code_challenge: &quot;</span><span class=\"mtk1\">,</span><span class=\"mtk12\">challenge</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">function</span><span class=\"mtk1\"> </span><span class=\"mtk11\">sha256</span><span class=\"mtk1\">(</span><span class=\"mtk12\">buffer</span><span class=\"mtk1\">) {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> </span><span class=\"mtk12\">crypto</span><span class=\"mtk1\">.</span><span class=\"mtk11\">createHash</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;sha256&#39;</span><span class=\"mtk1\">).</span><span class=\"mtk11\">update</span><span class=\"mtk1\">(</span><span class=\"mtk12\">buffer</span><span class=\"mtk1\">).</span><span class=\"mtk11\">digest</span><span class=\"mtk1\">();</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p><strong>Golang</strong></p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"golang\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">package main</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">import (</span>\n<span class=\"grvsc-line\">    &quot;crypto/sha256&quot;</span>\n<span class=\"grvsc-line\">    &quot;encoding/base64&quot;</span>\n<span class=\"grvsc-line\">    &quot;fmt&quot;</span>\n<span class=\"grvsc-line\">    &quot;math/rand&quot;</span>\n<span class=\"grvsc-line\">    &quot;strings&quot;</span>\n<span class=\"grvsc-line\">    &quot;time&quot;</span>\n<span class=\"grvsc-line\">)</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">type CodeVerifier struct {</span>\n<span class=\"grvsc-line\">    Value string</span>\n<span class=\"grvsc-line\">}</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">const (</span>\n<span class=\"grvsc-line\">    length = 32</span>\n<span class=\"grvsc-line\">)</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">func base64URLEncode(str []byte) string {</span>\n<span class=\"grvsc-line\">    encoded := base64.StdEncoding.EncodeToString(str)</span>\n<span class=\"grvsc-line\">    encoded = strings.Replace(encoded, &quot;+&quot;, &quot;-&quot;, -1)</span>\n<span class=\"grvsc-line\">    encoded = strings.Replace(encoded, &quot;/&quot;, &quot;_&quot;, -1)</span>\n<span class=\"grvsc-line\">    encoded = strings.Replace(encoded, &quot;=&quot;, &quot;&quot;, -1)</span>\n<span class=\"grvsc-line\">    return encoded</span>\n<span class=\"grvsc-line\">}</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">func verifier() (*CodeVerifier, error) {</span>\n<span class=\"grvsc-line\">    r := rand.New(rand.NewSource(time.Now().UnixNano()))</span>\n<span class=\"grvsc-line\">    b := make([]byte, length, length)</span>\n<span class=\"grvsc-line\">    for i := 0; i &lt; length; i++ {</span>\n<span class=\"grvsc-line\">        b[i] = byte(r.Intn(255))</span>\n<span class=\"grvsc-line\">    }</span>\n<span class=\"grvsc-line\">    return CreateCodeVerifierFromBytes(b)</span>\n<span class=\"grvsc-line\">}</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">func CreateCodeVerifierFromBytes(b []byte) (*CodeVerifier, error) {</span>\n<span class=\"grvsc-line\">    return &CodeVerifier{</span>\n<span class=\"grvsc-line\">        Value: base64URLEncode(b),</span>\n<span class=\"grvsc-line\">    }, nil</span>\n<span class=\"grvsc-line\">}</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">func (v *CodeVerifier) CodeChallengeS256() string {</span>\n<span class=\"grvsc-line\">    h := sha256.New()</span>\n<span class=\"grvsc-line\">    h.Write([]byte(v.Value))</span>\n<span class=\"grvsc-line\">    return base64URLEncode(h.Sum(nil))</span>\n<span class=\"grvsc-line\">}</span>\n<span class=\"grvsc-line\"> </span>\n<span class=\"grvsc-line\">func main() {</span>\n<span class=\"grvsc-line\">    verifier, _ := verifier()</span>\n<span class=\"grvsc-line\">    fmt.Println(&quot;code_verifier: &quot;, verifier.Value)</span>\n<span class=\"grvsc-line\">    challenge := verifier.CodeChallengeS256()</span>\n<span class=\"grvsc-line\">    fmt.Println(&quot;code_challenge :&quot;, challenge)</span>\n<span class=\"grvsc-line\">}</span>\n<span class=\"grvsc-line\"> </span></code></pre>\n<h2 id=\"implement-the-oauth-20-authorization-code-with-pkce-flow\" style=\"position:relative;\"><a href=\"#implement-the-oauth-20-authorization-code-with-pkce-flow\" aria-label=\"implement the oauth 20 authorization code with pkce flow permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Implement the OAuth 2.0 Authorization Code with PKCE Flow</h2>\n<h3 id=\"get-the-authorization-code\" style=\"position:relative;\"><a href=\"#get-the-authorization-code\" aria-label=\"get the authorization code permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Get the Authorization code</h3>\n<p>In the OAuth Authorization flow, we need to have the code verifier and code challenge to start with the authentication and obviously an OAuth provider to connect.</p>\n<p> For the initial request, we need to pass the code<em>challenge and code</em>challenge_method to the OAuth or OIDC provider that supports PKCE based flow.</p>\n<p>The request will look like: </p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">Provider + /oauth/redirect?</span>\n<span class=\"grvsc-line\">client_id={client_id}</span>\n<span class=\"grvsc-line\">&redirect_uri={Callback URL}</span>\n<span class=\"grvsc-line\">&scope={Scope}</span>\n<span class=\"grvsc-line\">&response_type=code</span>\n<span class=\"grvsc-line\">&state={random long string}</span>\n<span class=\"grvsc-line\">&code_challenge={code challenge}</span>\n<span class=\"grvsc-line\">&code_challenge_method=SHA256</span></code></pre>\n<p>The provider should redirect you to the authentication/login page and where you’ll get the code after successful authentication.</p>\n<h3 id=\"code-exchange\" style=\"position:relative;\"><a href=\"#code-exchange\" aria-label=\"code exchange permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Code Exchange</h3>\n<p>In the code exchange request, we need to pass the code we have received through the above request and the code verifier that we have generated in our first step.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">POST Provider + /oauth/access_token</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">Request body:</span>\n<span class=\"grvsc-line\">{</span>\n<span class=\"grvsc-line\">   client_id:{client_id},</span>\n<span class=\"grvsc-line\">   client_secret:{client_secret},</span>\n<span class=\"grvsc-line\">   redirect_uri:{redirect_uri},</span>\n<span class=\"grvsc-line\">   response_type:token,</span>\n<span class=\"grvsc-line\">   Code:{code} // That we have received in authorization request</span>\n<span class=\"grvsc-line\">   code_verifier: {code verifier // generated in the first step</span>\n<span class=\"grvsc-line\">}</span></code></pre>\n<p>Once the code<em>verificer hash matches with the code</em>challenge of the authorization request, You will get the token in the response with status code 200 OK.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">{</span>\n<span class=\"grvsc-line\">    &quot;access_token&quot;: &quot;c5a****b-****-4*7f-a********e4a&quot;,</span>\n<span class=\"grvsc-line\">    &quot;token_type&quot;: &quot;access_token&quot;,</span>\n<span class=\"grvsc-line\">    &quot;refresh_token&quot;: &quot;5*****82-b***-**82-8c*1-*******7ce&quot;,</span>\n<span class=\"grvsc-line\">    &quot;expires_in&quot;: 11972</span>\n<span class=\"grvsc-line\">}</span></code></pre>\n<p>That's it and you've implemented PKCE flow in your application.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk15 { color: #C586C0; }\n  .dark-default-dark .mtk5 { color: #D16969; }\n  .dark-default-dark .mtk6 { color: #D7BA7D; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n  .dark-default-dark .mtk10 { color: #4EC9B0; }\n</style>","frontmatter":{"date":"September 03, 2020","updated_date":null,"description":"If you are working with OAuth and OIDC authorization code flow and want to setup PKCE flow then this article will help you to understand everything about PKCE.","title":"PKCE: What it is and how to use it with OAuth 2.0","tags":["PKCE","Oauth","OIDC"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/7ba5011bcf44e895dd050e8766d4d005/2a4de/pkce.png","srcSet":"/static/7ba5011bcf44e895dd050e8766d4d005/69585/pkce.png 200w,\n/static/7ba5011bcf44e895dd050e8766d4d005/497c6/pkce.png 400w,\n/static/7ba5011bcf44e895dd050e8766d4d005/2a4de/pkce.png 600w","sizes":"(max-width: 600px) 100vw, 600px"}}},"author":{"id":"Narendra Pareek","github":"pareek-narendra","avatar":null}}}},{"node":{"excerpt":"Single-page applications, or SPAs, are web applications that load a single HTML page and update it by dynamically rendering the browser's…","fields":{"slug":"/identity/single-page-applications/"},"html":"<p>Single-page applications, or SPAs, are web applications that load a single HTML page and update it by dynamically rendering the browser's information as (and when) a user interacts with the app.</p>\n<p>The loading mechanism of SPAs is different from traditional page loads where the server had to re-render the entire webpage with every click and send it back to the browser—making the process time-consuming.</p>\n<p>Today, with a <a href=\"https://www.loginradius.com/single-page-deployment/\">new breed of users who expect data</a> to be available instantly and accessible everywhere, developers use JavaScript libraries and tools like Jquery, Angular to create single, responsive HTML pages. Such pages can be broken down into smaller sections, and the JavaScript code running on the web browser calls the required APIs on a server that returns the data.</p>\n<p>Advantages..?</p>\n<p>Well, Single-Page Applications make users' experience incredibly engaging and unique. The \"bits and pieces\" methodology makes load time much faster and fluid for users. Also, because the amount of information a server has to send back is a lot less, the application becomes cost-effective. </p>\n<h2 id=\"examples-of-single-page-application\" style=\"position:relative;\"><a href=\"#examples-of-single-page-application\" aria-label=\"examples of single page application permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Examples of Single-Page Application </h2>\n<p>A classic example of single-page applications is Gmail. They have mastered SPA-approach. You may notice that we do not generally need to refresh Gmail when a new email comes; we are notified instantly. It's obviously communicating with the server, but the JavaScript code hides the inbox and brings the message body on the same screen. </p>\n<p>Other notable examples of Single-Page Applications include: </p>\n<ul>\n<li>Google Maps</li>\n<li>Google Drive</li>\n<li>Facebook</li>\n<li>Twitter</li>\n<li>Airbnb</li>\n<li>Paypal</li>\n</ul>\n<h2 id=\"advantages-of-single-page-applications\" style=\"position:relative;\"><a href=\"#advantages-of-single-page-applications\" aria-label=\"advantages of single page applications permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Advantages of Single-Page Applications</h2>\n<p>According to Google's research, every time a page load goes from 1 sec to 3 sec, the probability of <a href=\"https://www.thinkwithgoogle.com/marketing-resources/data-measurement/mobile-page-speed-new-industry-benchmarks/\">bounce rate increases by 32%</a>. For 10 sec, the chance rises to a whopping 123%. </p>\n<p>No matter what, <em>faster's always better.</em> </p>\n<p>One of the major benefits of single-page applications is velocity. The majority of the resources that SPAs need—viz.HTML, CSS, and Scripts are loaded along with the application. They don't need to be reloaded throughout the entire session. </p>\n<p>Data is the only entity that is oscillated between the server and the webpage. This makes the application efficient and incredibly responsive to any query. </p>\n<h3 id=\"from-the-business-perspective\" style=\"position:relative;\"><a href=\"#from-the-business-perspective\" aria-label=\"from the business perspective permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>From the business perspective </h3>\n<p><strong>Fast and responsive</strong>: Probably by now, that's a given. With SPAs, businesses can increase the loading speed of their webpages significantly. Because they only reload content requests asked by the user, the server load is much lighter. It is, in fact, half of the server load compared to multi-page applications.</p>\n<p><strong>Better cache capabilities</strong>: Another advantage of single-page applications is that it can cache local data with utmost precision. It only takes one request to a server, and single-page applications effectively store all the data it receives. In the event of loss internet, this data can be put to use for seamless operation. </p>\n<p><strong>Frictionless user experience</strong>: If you are planning to build a single-page web application, rest assured, you will be offering <a href=\"https://www.loginradius.com/customer-experience-solutions/\">frictionless user experiences</a> <a href=\"https://www.loginradius.com/customer-experience-solutions/\"></a> to your consumers. Since it only loads the requested data, there is a significant improvement in performance as well. </p>\n<h3 id=\"from-the-consumer-perspective\" style=\"position:relative;\"><a href=\"#from-the-consumer-perspective\" aria-label=\"from the consumer perspective permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>From the consumer perspective </h3>\n<p>Speaking from the consumers' end, the apparent advantages of exposing them to single-page websites is the speed and ability to work with no connectivity. </p>\n<p>These applications offer continuous user experiences, meaning they are easy to explore. In addition, when businesses add options like parallax scrolling and transitions to the picture, they make the customer journey even better.</p>\n<p>Single-page applications can be the best bet for mobile users too. Users spend most of the time scrolling feeds on Facebook and Instagram. They can sit back, relax, and enjoy the show.</p>\n<p><a href=\"https://www.loginradius.com/resource/loginradius-ciam-standard-login/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAABgklEQVQY0z1QPS+DURh9Ddq+LZUWadGUpK1WW9VWv7+/lFY6CEHK2EFNYiDRRUKiBjH4AzYDMYgQg9oYdLFIRBDCVBFVSW3Hfa/WTU7u89zn5JzzXIbt9YGDUOuDSBdAE4FI5ydv3hp8/xCoPRAaIpDYU5D2R8DqIxDogmA1XghqHOZPzI9WYwgtvR6IVE6Iyd1pG4HcOgyxPgiBxlsTdENkikMZm4UhOgm+fQw8YxwsMaJzwmPqRY8zAffoDMyxCXSZo2CVVki0Hoj7AnTOgTNuJhvILEPosCWgIKYSY5huVjdl6oXak4IrmYYjkYbalYTc4Ifam0LbQAz8WoJGlRtiQwjtljhkJL2cCEpNUTqvc2hCHmkOTwsold5xd/+Ax6dnvLy+4aP8Bd94BozSjoZuBxZWt3B9c4u9ozPs7h9TXFwVcXByToV5xJARcoKkKFwWwZ3PchmVyjd+qlXah6fmwCgGKScyncXyxg7mc5vI5vLIruSxuLaNzNI6+esQTfkL9GXd7gPro64AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Loginradius standard login datasheet\"\n        title=\"Loginradius standard login datasheet\"\n        src=\"/static/651a124cca3bf1ea6b38019011a7eb36/e5715/LoginRadius-Standard-Login-Datasheet.png\"\n        srcset=\"/static/651a124cca3bf1ea6b38019011a7eb36/a6d36/LoginRadius-Standard-Login-Datasheet.png 650w,\n/static/651a124cca3bf1ea6b38019011a7eb36/e5715/LoginRadius-Standard-Login-Datasheet.png 768w,\n/static/651a124cca3bf1ea6b38019011a7eb36/2bef9/LoginRadius-Standard-Login-Datasheet.png 1024w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<h2 id=\"security-challenges-with-single-page-applications\" style=\"position:relative;\"><a href=\"#security-challenges-with-single-page-applications\" aria-label=\"security challenges with single page applications permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Security Challenges With Single-Page Applications</h2>\n<p>Although there isn't much speculation around the fact that Single-Page Applications provide better experiences for developers and consumers, they have their own set of security shortcomings. For instance, SPAs cannot be adequately scanned by traditional scanners. This gives <a href=\"https://www.loginradius.com/blog/2020/05/cyber-threats-business-risk-covid-19/\">cybercriminals a broader scope for attack</a>.</p>\n<p>Other common security issues include:</p>\n<h3 id=\"authentication-and-session-tracking\" style=\"position:relative;\"><a href=\"#authentication-and-session-tracking\" aria-label=\"authentication and session tracking permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Authentication and Session Tracking</h3>\n<p>Usually, browsers that run in single-page applications interact with two different systems- </p>\n<ul>\n<li>The first takes care of loading one or multiple HTML web pages. Additionally, it provides images, JavaScript libraries, and other assets.</li>\n<li>The other serves the API calls that carry the business logic and data.</li>\n</ul>\n<p>In some instances, web server sessions protect the APIs behind a single page application, but this means that all business APIs should be proxied by a web server. That typically involves session cookies which are quite vulnerable to <a href=\"https://www.loginradius.com/blog/2019/10/cybersecurity-attacks-business/\">cyber attacks.</a></p>\n<h3 id=\"cross-site-request-forgery-csrf\" style=\"position:relative;\"><a href=\"#cross-site-request-forgery-csrf\" aria-label=\"cross site request forgery csrf permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Cross-Site Request Forgery (CSRF)</h3>\n<p>CSRF or XSRF, or sea-surfing is one of the oldest web application attacks. Usually, CSRFs are performed through social engineering, for example, via forged emails or links that fool the user into sending a fake request to the server.</p>\n<p>It happens when a malicious website has a link that connects to another website that the user has already signed in to. The bad actors authenticate the unaware user, so it is nearly impossible to distinguish a legitimate request from a fake one. </p>\n<p>Here's an instance of how a CSRF can take place:</p>\n<ul>\n<li>You log in to your bank account. </li>\n<li>But after you are done with your activities, you forget to log out.</li>\n<li>Meanwhile, you receive an email from your friend with a link that says, \"See Happy Puppies.\"</li>\n<li>The moment you click on the link, it will connect back to your bank's already opened website, and the attacker will perform financial transactions without your knowledge. </li>\n</ul>\n<h2 id=\"securing-single-page-applications-with-loginradius\" style=\"position:relative;\"><a href=\"#securing-single-page-applications-with-loginradius\" aria-label=\"securing single page applications with loginradius permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Securing Single-Page Applications with LoginRadius</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 68.61538461538461%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsSAAALEgHS3X78AAAB8ElEQVQ4y3VU7XKbMBDk/Z+ob9A/nXgmiadOWjt2jI1tHARIICEB2zsZEUxSzdzo48Te3t6JCDT6vsfn6P1+bqN3WH93zhaFQ9N2yLRDQ/N9AL58DzD1W9fCte14PgK2Xe/BwuC9pb3rhoCNxf58RaXNzU8+USoUqkZZ1ZCV9ufRnDpHFMQ0kQ32hUFMllYWxrZQtUYuKw90yQo4d2MWztgfBSBJGz5cXwo8xRlWp9wDsm2F9sDtwJbvsgWw1WbvM+C1B2SgWmuU2nqA97zGCwEuDxni0nh7H5hyNlkhPRtDCq0zjde0hKVgOeFEHImdTH6TGyzTGn/p0lFaD/o7EcSw9vOK7IM+Yr0YtCYZRNNB0ceKtGU9o4wu8EirBk/7Kxa7FM9nOab78Hb2TNdXiR0BhyI11t1044KoyqfrqywGwA8CfN4esUxyLBKJN9KNAZlZXN4KdKRCsY6hiB3N1jlfyDBGhmdl8Xop8fOg8GOT4/GscCDtHok1a7gjOXKq/ryp+3ljcw/VxoCkgDCtB1mcFLYE8IcC/NqcsDwKJAXp3HV3jc0MtevG6o+NzQJr03z2YtsjFgovSeYrmylKN6W1KL48v6kEHjC8La6QIGGLwSQxnzY8N3F4JfPHMA0STR0dpcQCh9T+9xOY+6YM/wEY80CDjhRUaQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"single page app 2\"\n        title=\"single page app 2\"\n        src=\"/static/524079ada76e5735cb917c03b866b78a/e5715/single-page-app-2.png\"\n        srcset=\"/static/524079ada76e5735cb917c03b866b78a/a6d36/single-page-app-2.png 650w,\n/static/524079ada76e5735cb917c03b866b78a/e5715/single-page-app-2.png 768w,\n/static/524079ada76e5735cb917c03b866b78a/2bef9/single-page-app-2.png 1024w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Now the questions arise, how do you safely <a href=\"https://www.loginradius.com/blog/2020/06/authentication-vs-authorization-infographic/#:~:text=Though%20both%20the%20terms%20sound,to%20perform%20a%20specific%20function.\">authorize and authenticate</a> your Single Page (SPA) users? Here, we are being particular about JavaScript web applications that run on the same domain as the API.</p>\n<p>LoginRadius offers two options to cope up with the cybersecurity-related shortcomings. </p>\n<ul>\n<li>Federated SSO</li>\n<li>Web SSO</li>\n</ul>\n<h3 id=\"federated-sso\" style=\"position:relative;\"><a href=\"#federated-sso\" aria-label=\"federated sso permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Federated SSO</h3>\n<p>LoginRadius uses popular token-based protocols like OAuth2 and OpenID Connect for <a href=\"https://www.loginradius.com/federated-sso/\">federated logins</a>. Examples include Login with Facebook, Google, or any other third-party sites.</p>\n<p>Unlike the older SAML 2.0, which could be used only once as proof of identity, these new protocols can be used over and over again to access protected API resources. </p>\n<p><strong>OAuth 2.0</strong>: OAuth2 is an industry-standard protocol for token-based authentication and authorization. It supports multiple grant types, which means users can grant access to their resources from one application to another without exposing their credentials, every time.</p>\n<p>It functions by giving short-lived access tokens to the Single-Page Application, which in turn authorizes the SPA so it can access the protected API services. It is often conducted on behalf of the logged-in user.</p>\n<p><strong>OpenID Connect</strong>: LoginRadius also supports standard <a href=\"https://www.loginradius.com/compliance-list/openid/\">OpenID Connect</a>, which is an identity layer on top of the OAuth 2.0 protocol. It is used to verify user identity depending on the authentication performed by an Authorization Server. With OpenID Connect, you can also retrieve basic profile information about the user.</p>\n<h3 id=\"web-sso\" style=\"position:relative;\"><a href=\"#web-sso\" aria-label=\"web sso permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Web SSO</h3>\n<p>Web SSO is browser-based session management that uses cookies to manage sessions between applications. Cookies are created by the server and contain information that a browser sends to the server on request. LoginRadius IDX uses a centralized domain to perform the authentication and, when requested, shares the session with authorized applications.</p>\n<p>It helps users <a href=\"https://www.loginradius.com/blog/2019/11/benefits-single-sign-on-sso/\">log into multiple applications</a>, irrespective of the platform or domain, provided they are logged in to one application in the first place. </p>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion </h2>\n<p>Cybersecurity issues aren't unique to Single-Page Applications. The users make requests and not JavaScript. Also, the result is produced in HTML and not in JSON or any other format. </p>\n<p>Unlike the traditional non-SPAs where you had to secure individual pages on the server, all you need is to secure the data endpoints in single-page applications. Going by the options above, <a href=\"https://www.loginradius.com/blog/identity/digital-privacy-best-practices/\">dodging cybercriminals</a> should not be a big deal.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAABbElEQVQY0zVQO0/CUBQmaihthUbRhPhCAlhKEXlE3s+CCEaBwQF10riQODkwaFyMMcTFwR9gjBvRSeKko4NxcfD/fJ57C8PJbc53+r0soj8Lm5qHbS0HW6AIwZ+DXSvAESxBpJ3MMLph3+xWDlUwm2jCGa5A0isQtRIkhrH/CbdwwkDBHAJlGodexsy6wUkduknMBCfdmxCCBhZKHailfUxGm5jQKphaTUDwmaIWdigyF1oZsm7AFavBRspKuMpdTJMQO5yLbCHVPkG0cYRY4xAR9tbp3T5AsnUMT7YFqzdtOuQOSFmiyMupXUihKuzk0hWvc0xgUYlYod18tAZPrg13eg8rNIuJHSihMtVUHEUe51cLPJ5zo8oJJRJQRnHlQB6WpTjOru7w/fuH59d3PL0M8Th4w+fXDwbDD16R1ZsxCcelsyUbidQEEuC9ECap1J8nCaPTRe/2Ad3LvjkXfZxf3+O0d8P7FnwZ/AMzEsMp2f6LdQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-free-demo-loginradius\"\n        title=\"book-a-free-demo-loginradius\"\n        src=\"/static/779ad148d33fb1ecfd80cc41f1a94ef3/e5715/Book-a-free-demo-request-1024x310.png\"\n        srcset=\"/static/779ad148d33fb1ecfd80cc41f1a94ef3/a6d36/Book-a-free-demo-request-1024x310.png 650w,\n/static/779ad148d33fb1ecfd80cc41f1a94ef3/e5715/Book-a-free-demo-request-1024x310.png 768w,\n/static/779ad148d33fb1ecfd80cc41f1a94ef3/2bef9/Book-a-free-demo-request-1024x310.png 1024w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"September 03, 2020","updated_date":null,"description":"Single-page apps, or SPAs, are web applications that load and update a single HTML page by dynamically rendering details from the browser as (and when) a user interacts with the programme.","title":"Single-Page Applications: Building A Secure Login Pathway with LoginRadius","tags":["cx","authentication","ciam solution"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/a795dd7ad68a55baf8f9f906014d1c75/33aa5/single-page-applications.jpg","srcSet":"/static/a795dd7ad68a55baf8f9f906014d1c75/f836f/single-page-applications.jpg 200w,\n/static/a795dd7ad68a55baf8f9f906014d1c75/2244e/single-page-applications.jpg 400w,\n/static/a795dd7ad68a55baf8f9f906014d1c75/33aa5/single-page-applications.jpg 768w","sizes":"(max-width: 768px) 100vw, 768px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},{"node":{"excerpt":"Big Data - Introduction Earlier, we were only dealing with well-structured data, hosted in large data warehouses, and investing a cost in…","fields":{"slug":"/engineering/big-data-testing-strategy/"},"html":"<h2 id=\"big-data---introduction\" style=\"position:relative;\"><a href=\"#big-data---introduction\" aria-label=\"big data   introduction permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Big Data - Introduction</h2>\n<p>Earlier, we were only dealing with well-structured data, hosted in large data warehouses, and investing a cost in maintaining those data warehouses and hiring expert professional to maintain and secure information hosted in that data warehouse. Data was structured and can be queried anything as per the needs. But now, this exponential growth of data generates a new vision for data science along with some major challenges.</p>\n<p><strong>Big Data</strong> is something which is growing exponentially with time, and carry raw but very valuable information inside that can change the future of any enterprise. It is a collection, which represents a large dataset, may be collected from multiple sources, or stored in an organization.\nLet‟s understand a real-time example, Big companies like Ikea and Amazon are leveraging the benefit of big data by collecting data from customer‟s buying patterns at their stores, their internal stock information, and their inventory demand-supply relations and analyze all, in seconds even in real-time to add value to its customer experience. </p>\n<p>So, extracting information from a large dataset somewhat calls a concept of Data mining which is an analytic process originally designed to explore large datasets. The ultimate goal of data mining is to search for consistency in a pattern or systematic relationship between variables, which helps in predicting the next pattern or behavior. </p>\n<p>Now, if we take concepts of data mining forward along with large data set, to some extent it becomes a blocker for our existing approach, because big data may contain structured or unstructured data even it may contain data in multiple formats also.</p>\n<h2 id=\"big-data-testing\" style=\"position:relative;\"><a href=\"#big-data-testing\" aria-label=\"big data testing permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Big Data Testing</h2>\n<p>Testing is an art of achieving quality in your software product, in terms of perfection of functionality, performance, user experience, or usability. But for big data testing, you need to keep your focus more on the functional and performance aspects of an application. Performance is the key parameter in any big data application which is meant to process terabytes of data. Successful processing of terabytes of data using a commodity cluster with a number of other supportive components needs to be verified. Processing should be faster and accurate which demands a high level of testing. </p>\n<p>Processing may be of three types:– </p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 356px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 91.57303370786518%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAIAAADUsmlHAAAACXBIWXMAABYlAAAWJQFJUiTwAAADHklEQVQ4y52UWUwTQRjHBwM++qKEgPWKgkZfjAaNeIVD8URAESLQ0hbkaKEVGkHFyCHdtrSKtIAWCiSIomhijNEI0Qcf8EpMIKkxrXJ0W7cIPZbtJd3dcdtGJMYH9csvM18m+c/8vy8zA6AXhwtB0/8AhIA2DHnNeo/jG+klmIW/JyDG0U+4SU+RfrflI9YnsOoKrF1sa2+htTuYdHN/p4eHaXPtwwhNk8CJTQYNUxSErmEloc1w6U4TXafcd4uddXG2MmCviLCXhy/gEC2dKQLO20dJah7YLOOhahknroEyonkHcSNxDtlKKOLxmiincImzPHwxuGiprQjg/UExYcNwq4l02+36l8br6UYkxSBLMcoPGpBko+KQUXnsd1THDciBqUEJSc4D5kxmwk1G86vHMzh0kZQbQjcNQyPhZ1agm4IeGnrgL9x+iqJowFjGHW7MZCP9FD5D9FXr1HmyNraijRNAJ1Bri1o0bIUmT67OlYVoPYN05Ku+jqEBsWVymqboYMvgi84XnbzWwdr+x9IHV/dd6C5ue6Z69KjxnianuTQyX7y2ULymUMgquBRXYXkzGRCj45jfTzJ6Jn/a8kSyqVR++IryeENl7NnzWwSX4ysb9lRf3CYqicwVxLCFMZySqNzqdaXoyERA7HF5p82zvjnXLOYYkN65JbyhFalvlbd2VbXrJO2dYo22Qq0Va3SSjhBdko6eqptmvQkwhTtcHnTcgL196vEx7km4KGj45whdUYBiVtT6jST9esOXI1zl7syGw/mK1Dx5YrZ0f1ZTGk+192RjUo50V3pdQkb9T+oSMqUjH6aACbMyO5HBbgnr+tiVuhr5w6qm+7zq3lROi6h+gCEhEwHL85as5gMWL2wVH8RwIjYIh15PgEmzhZFRwW5lV9yM3H4uNvFSzE7JxuRaVsL5FdvEcUm1yzYLQDQnjMUFK7lhLB6IZoevFzxnGjaNfp4yjLm++9+N6nPKlGlcJJ0vS+fLT3BlGXxZZpEirQA5ebY5p0yVXfqLrOJr70fHATQ899lQwjvv83nhP0TgXQJ63vO/fwH8AabUCPldraOGAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Batch, Real Time, Interactive\"\n        title=\"Batch, Real Time, Interactive\"\n        src=\"/static/9458f354fd26eed7b520607d437ca40e/50ac3/BigDataTesting-2.png\"\n        srcset=\"/static/9458f354fd26eed7b520607d437ca40e/50ac3/BigDataTesting-2.png 356w\"\n        sizes=\"(max-width: 356px) 100vw, 356px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>And based on which, we need to integrate different components along with NoSQL data store as per the needs.</p>\n<h2 id=\"big-data-testing---test-data\" style=\"position:relative;\"><a href=\"#big-data-testing---test-data\" aria-label=\"big data testing   test data permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Big Data Testing - Test Data</h2>\n<p>Data plays a vital role in the testing of big data applications. Application is meant to process data and provide an expected output based on implemented logic. The logic needs to be verified before moving to production, as the implementation of logic is completely based on business requirements and data.</p>\n<p><strong>1. Test Data Quality</strong></p>\n<p>Good quality test data is as important as the test environment. In the big data world, data can have any format or size, it may be in the form of a document, XML, JSON, PDF, etc. at the same time data size may go up to terabytes of petabytes. Hence, test data should also have multiple formats and size should be large enough to ensure the handling of large data processing. In big data testing, it needs data with logical values as per the application requirement and format which is supported by the application. </p>\n<p>Along with it, data quality is another aspect of big data testing. Ensuring the quality of data before processing through application ensures the accuracy of the final output. Data quality testing itself is a huge domain and covers a lot of best practices which include – data completeness, conformity, accuracy, validity, duplication, and consistency, etc. It should be included in the big data testing and this ensures the level of accuracy application is supposed to provide.</p>\n<p><strong>2. Test Data Generation</strong></p>\n<p>The generation of test data is again a challenging job, there are multiple parameters, which have to be taken care of while generating test data. It needs a tool, which can help to generate data and should have functions or logic can also be applied over it. Tools like Talend (an open studio) is the best candidate to fulfill the requirements of data generation.</p>\n<p><strong>3. Data Storage</strong></p>\n<p>After the generation of test data along with quality, it needs to host on a file system. For testing big data applications, data should be stored in the system similar to the production environment. As we are working in big data space, there should have a different number of nodes, and data must be in a distributed environment.</p>\n<h2 id=\"big-data-testing---test-environment\" style=\"position:relative;\"><a href=\"#big-data-testing---test-environment\" aria-label=\"big data testing   test environment permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Big Data Testing - Test Environment</h2>\n<p>In Big data testing, the test environment should be efficient enough to process a large amount of data as done in the case of a production environment. Real-time production environment clusters generally have 30-40 nodes of cluster and data is distributed on the cluster nodes. There must have some minimum configuration for each node used in the cluster. A cluster may have two modes, in-premise or cloud. For testing in big data, it needs the same kind of environment with some minimum configuration of node.</p>\n<p>Scalability is also desired to be there in the test environment of big data testing, it helps to study the performance of application with the increase in the number of resources. That data can be used to define SLA (service level agreement) for that particular application.</p>\n<p><strong>Big Data Testing can be categorized into three stages:</strong></p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 88.92307692307693%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAIAAADUsmlHAAAACXBIWXMAABYlAAAWJQFJUiTwAAADVUlEQVQ4y0WRS4/jRBDH/a34BghxQ4ILFyRYARIfggMnJA4r7R5Wo0UsIA0SAi2CaBC7k0lmM8k8sgnJzMRJJrGdOG673W6/3X67TSWZZUul7upW/br+VS1M5yfi7MVg2Bj+2xiNjwbDv8Y3R/PFaRzH9c4sS5eU3q3Ymogn02l7Orv38fVLwcCXdX2XV1NNP8PkIq9EXs8sOmQs2sMYqwEbUucKk3NCLxyvb1rn1LmUV01hKbc3qKMbPQ2dgW/QmW72lvKrJLmvTIgG2N2iORo3BsM/Z/OXs/kLcfqPtGoLG9SDssBLyslCauq4V3ARGZcsZveVzU2YjCz7CgogowsPQQ51+gj3hJW6VbvROkjvYvNChcDoSkonfgMbxjqMx4Re6vjcsvvUfa2iju2+Bo0CyJDkprxqKavWenOqrNuy0pSU0/9lU4r8YAAdrdXTxfIYEgzcBSGACBOxZVoDhK+QsXVNv8TWYHrXURTZNE1KbVG8VjbnyOiL09Zg+Pfo+lhag4rBzeRYCMLIdj3X84Mg3HrEIhbLt7fiZNJoHL3qdCfja7SUWJJFLIGVeXagLwPfjyIm0Ch24pSyJEpzEFnlcagqzKGapsp3orKc6TpipsE0uS7h8zhPvMpe1kUCyYIVRpxzlmVenNaBVgVm6Wo8tmrw3KkTUkdmFZEiIHXmV4HB07B0VnwPEz+cTCY6sVwvKJ1NnBcZGFVzR4eZZQnLHFS6hiLLq5XKfSO1jdSS7mHddprHTWmtEmwybd7rdm/GoxTLoboYDQdz8SYxVxlZd9qtfv+KO8iWZpY8qst0C5uuL8sKwiSEnkOzrOqyLCqQGtscgiypIoszalPL9/w6sqrEfysbO55FCHHcIMlKd5MFNPPN3DdyT08tOTGXhY9zH5c+Knyj8HSeBm9hK9gNLM1cGFiRAJyHlO9UVWVZVSUEvAIFLGVhBZexV5AZz/c9O55KqErsKM32ebyssjRNYpanKThEcK7LAr4JEsosjh0EeVsYrkrosijgoBj4vW8P3n/40xfPnn/54x+fPP3t0+9/f/DD8w8eH77z9aOL6WIrp+L1GxP2W7V7VcXmR98dfPjw2WdPDr96+uuDJ4efH/wC68ePf373m0f92XIHQ817/j9I9cMvGRItTQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Big Data Testing - Phases\"\n        title=\"Big Data Testing - Phases\"\n        src=\"/static/8651aa9cd003c1bfdc5218e858b6dc5a/e5715/BigDataTesting-1.png\"\n        srcset=\"/static/8651aa9cd003c1bfdc5218e858b6dc5a/a6d36/BigDataTesting-1.png 650w,\n/static/8651aa9cd003c1bfdc5218e858b6dc5a/e5715/BigDataTesting-1.png 768w,\n/static/8651aa9cd003c1bfdc5218e858b6dc5a/d2a60/BigDataTesting-1.png 807w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p><strong>Step 1: Data Staging Validation</strong></p>\n<p>The first stage of big data testing, also known as a Pre-Hadoop stage, is comprised of process validation.</p>\n<ol>\n<li>Validation of data is very important so that the data collected from various source like RDBMS, weblogs, etc are verified and then added to the system.</li>\n<li>To ensure data match you should compare source data with the data added to the  <a href=\"https://en.wikipedia.org/wiki/Apache_Hadoop\">Hadoop</a>  system.</li>\n<li>Make sure that the right data is taken out and loaded into the accurate HDFS location</li>\n</ol>\n<p><strong>Step 2: “Map Reduce” Validation</strong></p>\n<p>Validation of “Map Reduce” is the second stage. Business logic validation on every node is performed by the tester. Post that authentication is done by running them against multiple nodes, to make sure that the:</p>\n<ul>\n<li>The process of Map Reduce works perfectly.</li>\n<li>On the data, the data aggregation or segregation rules are imposed.</li>\n<li>Creation of key-value pairs is there.</li>\n<li>After the Map-Reduce process, Data validation is done.</li>\n</ul>\n<p><strong>Step 3: Output Validation Phase</strong></p>\n<p>The output validation process is the final or third stage involved in big data testing. The output data files are created and they are ready to be moved to an  <strong>EDW (Enterprise Data Warehouse)</strong>  or any other such system as per requirements. The third stage consisted of:</p>\n<ul>\n<li>Checking on the transformation rules is accurately applied.</li>\n<li>In the target system, it needs to ensure that data is loaded successfully and the integrity of data is maintained.</li>\n<li>By comparing the target data with the  <strong>HDFS file system data</strong>, it is checked that there is no data corruption.</li>\n</ul>\n<h2 id=\"big-data---performance-testing\" style=\"position:relative;\"><a href=\"#big-data---performance-testing\" aria-label=\"big data   performance testing permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Big Data - Performance Testing</h2>\n<p>Big data applications are meant to process a large amount of data, and it is expected that it should take minimum time to process maximum data. Along with it, application jobs should consume a considerable amount of memory and CPU. In big data testing, performance parameter plays an important role and helps to define SLA's. It covers the performance of the base machine and cluster. Also, for example, In the case of Hadoop, map-reduce jobs should be written with proper coding guidelines, to perform better in the production environment. Profiling can also be done on map-reduce jobs before integration, to ensure their optimized execution.</p>\n<h2 id=\"tools-used-in-big-data-scenarios\" style=\"position:relative;\"><a href=\"#tools-used-in-big-data-scenarios\" aria-label=\"tools used in big data scenarios permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Tools used in Big Data Scenarios</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.6923076923077%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAABYlAAAWJQFJUiTwAAABhklEQVQoz4WTzXaCMBCF8/4PV7tpVwoewcQYIBBAQP56MyNIy6Lf0ThJSObOHRQfxOHw+f39dVgIwkBKef0PcT6HQRAcj8cwDE+nU0CfOI611kqp2w5eUoTQ+p5lWd/3z+ezbdsHUVVVWZYV/VQ7ymVRQN1N667rcLgoCkVq8Y3jKxJcLtFVSqTCMmdDjC0lKfNMjOOIw8MwIJ7mFxPBwTryxugZRBRFKNWYBIs4D0GsvK5r1s8TDmpSi4DTCH4C1WKCMU1Tm+dFDlBEgWlO2NwWzuW0hfW+p8NcLW6CZ5Ay71jVjht6wrcKfUJOXIGLfXvJG2+bVOiZJBA4VyJTS3SEwAVIzZOmabYd2bYK7cFu9xtRV7CmZmNZ0jS9Z9P8ina7Hv+SAK7q8WgQQ3zmSa21GI25p1mKdWtz+LO1Q6yubG9dk4xLNFL4xzkBY85hiD6jeOhHWlcQ7vWLarlbzjlowfiuGdtJkqB5cBt+6ps2EOqLMb6eu0GrFb2NJknwh8DDi9ndD828U5pz6ajAAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Big Data Scenarios - Tools\"\n        title=\"Big Data Scenarios - Tools\"\n        src=\"/static/726542cf06d2ab94260b40278ec5c4ca/e5715/BigDataTesting-3.png\"\n        srcset=\"/static/726542cf06d2ab94260b40278ec5c4ca/a6d36/BigDataTesting-3.png 650w,\n/static/726542cf06d2ab94260b40278ec5c4ca/e5715/BigDataTesting-3.png 768w,\n/static/726542cf06d2ab94260b40278ec5c4ca/42de8/BigDataTesting-3.png 1033w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<h2 id=\"big-data-testing---challenges\" style=\"position:relative;\"><a href=\"#big-data-testing---challenges\" aria-label=\"big data testing   challenges permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Big Data Testing - Challenges</h2>\n<p>In big data testing, certain challenges are involved which needs to be addressed by the big data testing approach.</p>\n<p><strong>1. Test Data</strong></p>\n<p>Exponential growth had been observed in the growth of data in the last few years. A huge amount of data are being generated daily and stored in large data centers or data marts. So, there is a demand for efficient storage and a way to process it in an optimized way. If we consider the telecom industry, it generates a large number of call logs daily and they need to be processed for better customer experience and compete in the market. The same goes with the test data, test data should be similar to production data and should contain all the logically acceptable fields in it. </p>\n<p>This becomes a challenge for testing big data application, generating test data similar to production data is a real challenge. Test data should also be large enough to verify proper working big data application.</p>\n<p><strong>2. Environment</strong></p>\n<p>The processing of data highly depends on the environment and its performance. An optimized environment setup gives high performance and fast data processing results. Distributed computing is used for the processing of big data which has data hosted in a distributed environment. The testing environment should have multiple numbers of nodes and data should be distributed over the nodes. At the same time, it also needs to monitor those nodes, to ensure the highest performance with minimum CPU and memory utilization. Nodes should be monitored and there should have a graphical presentation of node performance. So, the test environment has two aspects – distributed nodes and their monitoring, which should be covered in the testing approach.</p>\n<p><strong>3. Performance</strong></p>\n<p>Performance is the key requirement of any big data application, and of course because of which enterprises are moving towards NoSQL technologies, technologies that can handle their big data and process in the minimum time frame. A large dataset should be processed in a minimum considerable time frame. In big data testing, performance testing is a challenge, it requires monitoring of cluster nodes during execution and also time is taken for every iteration of execution.</p>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>Big Data is the trend that is revolutionizing society and its organizations due to the capabilities it provides to take advantage of a wide variety of data, in large volumes and with speed. Keeping the challenges in mind we have defined the approach of testing big data applications. This approach of big data testing will make it easy for a test engineer to verify and certify the business requirement implementations and for stack holders, it saves a huge amount of cost, which has to be invested to get the expected business returns.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"September 02, 2020","updated_date":null,"description":"With the exponential growth in the number of big data applications in the world, Testing in big data applications is related to database, infrastructure and performance testing and functional testing. This blog guides what should be the strategy for testing Big Data applications.","title":"Big Data - Testing Strategy","tags":["Testing","Big Data","Big Data Testing"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7699115044247788,"src":"/static/370acda0a8a364ef7098ce2df0537d12/ee604/big-data.png","srcSet":"/static/370acda0a8a364ef7098ce2df0537d12/69585/big-data.png 200w,\n/static/370acda0a8a364ef7098ce2df0537d12/497c6/big-data.png 400w,\n/static/370acda0a8a364ef7098ce2df0537d12/ee604/big-data.png 800w,\n/static/370acda0a8a364ef7098ce2df0537d12/f3583/big-data.png 1200w,\n/static/370acda0a8a364ef7098ce2df0537d12/5707d/big-data.png 1600w,\n/static/370acda0a8a364ef7098ce2df0537d12/eeb1b/big-data.png 1920w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Sudhey Sharma","github":"sudheysharma","avatar":null}}}},{"node":{"excerpt":"LoginRadius, a leader in cloud-based consumer identity and access management solution (CIAM) has released an industry report titled…","fields":{"slug":"/identity/loginradius-consumer-digital-identity-trend-report-2020/"},"html":"<p>LoginRadius, a leader in cloud-based consumer identity and access management solution (CIAM) has released an industry report titled \"Consumer Identity Trend 2020\" for C-suite professionals and product managers of B2C companies that deal with consumer‘s identity data.</p>\n<p>The learning objective for this industry analysis is to determine the opportunities and threats that exist within the identity environment. </p>\n<h2 id=\"report-overview\" style=\"position:relative;\"><a href=\"#report-overview\" aria-label=\"report overview permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Report Overview</h2>\n<p>The report offers a comprehensive overview of the Consumer Identity Trends of 2020. It aims to improve consumer experiences on a digital platform via extensive data analysis on consumer behavior and lifecycle.</p>\n<p>This research piece points out the increasing competition across all industry verticals and that consumer experience is a success key if businesses want to stand out in a highly competitive world.</p>\n<p>To achieve this, businesses need to identify their consumer behavior and pain points, including their preferred authentication methods, such as passwordless login or multi-factor authentication via email or SMS, or social sign-on.</p>\n<p>The data was collected from the LoginRadius Identity Platform, which serves and manages 1,17 billion consumer identities for thousands of websites and mobile applications. The research was conducted with data from 1 January 2019 until 10 May 2020.</p>\n<p>The key findings of the report have been outlined in the infographic below. It will help you understand: </p>\n<ul>\n<li>The preferable login methods by end-users.</li>\n<li>The preferable verification process.</li>\n<li>The performance benchmarks for identity management platforms.</li>\n</ul>\n<p>The report is available for download. <a href=\"https://www.loginradius.com/resource/digital-identity-trends-2020/\">Request your copy here</a>.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 630.9230769230769%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,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'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"consumer-identity-trends-2020\"\n        title=\"consumer-identity-trends-2020\"\n        src=\"/static/386ff36bbbf103ae1437390671c415d0/e5715/consumer-identity-trends-2020.png\"\n        srcset=\"/static/386ff36bbbf103ae1437390671c415d0/a6d36/consumer-identity-trends-2020.png 650w,\n/static/386ff36bbbf103ae1437390671c415d0/e5715/consumer-identity-trends-2020.png 768w,\n/static/386ff36bbbf103ae1437390671c415d0/4fa52/consumer-identity-trends-2020.png 1241w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-loginradius\"\n        title=\"book-a-demo-loginradius\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"September 02, 2020","updated_date":null,"description":"LoginRadius, a pioneer in cloud-based customer identity and access management (CIAM) solution, has released an industry report titled 'Consumer Identity Trend 2020' for C-suite professionals and B2C business product managers concerned with customer identity.","title":"LoginRadius Releases Consumer Digital Identity Trend Report 2020","tags":["industry news","consumer identity","digital identity"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.408450704225352,"src":"/static/7d9196cc2cfe81885fc3ca26265edec7/6051d/consumer-identity-report-loginradius.png","srcSet":"/static/7d9196cc2cfe81885fc3ca26265edec7/69585/consumer-identity-report-loginradius.png 200w,\n/static/7d9196cc2cfe81885fc3ca26265edec7/497c6/consumer-identity-report-loginradius.png 400w,\n/static/7d9196cc2cfe81885fc3ca26265edec7/6051d/consumer-identity-report-loginradius.png 769w","sizes":"(max-width: 769px) 100vw, 769px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},{"node":{"excerpt":"Introduction Authentication is the necessary implementation for secure and genuine access to resources of web and mobile applications. It…","fields":{"slug":"/engineering/email-verification-api/"},"html":"<h2 id=\"introduction\" style=\"position:relative;\"><a href=\"#introduction\" aria-label=\"introduction permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Introduction</h2>\n<p>Authentication is the necessary implementation for secure and genuine access to resources of web and mobile applications. It helps to authorize the user and provide access control for applications based on the user’s credentials. </p>\n<p>There are various authentication mechanisms like Email, Phone numbers, Biometrics, etc. However, Email is still considered the primary means of authentication because other mechanisms are not as optimized or in approach to everyone. </p>\n<p>So it is safe to say that most of your application users used email for creating their accounts. With that, some users tend to use disposable email services for fake account creation. These fake accounts result in additional liability to your application resources and servers.</p>\n<p>You can effectively reduce such spams for your applications by analyzing the user’s email address during registration for the following aspects:</p>\n<ul>\n<li>Email is valid or not.</li>\n<li>Email is disposable or not.</li>\n<li>Email is deliverable or not.</li>\n</ul>\n<p>There are some tools available that could help you analyze the above factors, and one such tool is <a href=\"https://eva.pingutil.com\">EVA</a>, an Email Verification API. It is a free API and analyzes the user’s email for all of the factors mentioned above. </p>\n<h3 id=\"api-details\" style=\"position:relative;\"><a href=\"#api-details\" aria-label=\"api details permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>API Details</h3>\n<p>The details of Email Verification API (API) is as follows:</p>\n<table>\n<thead>\n<tr>\n<th>Parameters</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>URL</td>\n<td><code>https://api.eva.pingutil.com/email</code></td>\n</tr>\n<tr>\n<td>Query Param</td>\n<td><code>{ email: test@mail7.io }</code></td>\n</tr>\n<tr>\n<td>Response</td>\n<td><code>{ \"status\": \"success\", \"data\": { \"email_address\": \"test@mail7.io\", \"domain\": \"mail7.io\", \"valid_syntax\": true, \"disposable\": true, \"deliverable\": true }}</code></td>\n</tr>\n</tbody>\n</table>\n<p>Valid_syntax, disposable, and deliverable are three attributes of this API, let’s see how these works:</p>\n<h4 id=\"output-parameters\" style=\"position:relative;\"><a href=\"#output-parameters\" aria-label=\"output parameters permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Output Parameters:</h4>\n<p><code>valid_syntax</code>\nThis attribute verifies the syntax of the entered email address matches the standard email address format or not. It is useful in the cases where the end-user might misspell email addresses while typing.</p>\n<p><code>disposable</code>\nThis attribute verifies whether the entered email address domain belongs to the disposable email service. EVA checks the email address against a valid database of more than 4500 disposable email services. Thus, it can effectively help the developer to prevent users from registering using disposable email.</p>\n<p><code>deliverable</code>\nThis attribute verifies whether the email domain has valid MX records or not. The email address is considered deliverable if the valid MX record for the email domain is found.</p>\n<blockquote>\n<p><strong>Note</strong>: A mail exchanger record (MX record) specifies the mail server responsible for accepting email messages on behalf of a domain name. It is a resource record in the Domain Name System (DNS). </p>\n</blockquote>\n<p>The response received for the above three attributes of API can help you take further action. These attributes are not just limited to registration use cases, you can utilize them for other use cases like if you have an existing user base but would like to limit the spammers (who have registered using disposable emails) from commenting on the blog or accessing your application resources.</p>\n<p><em>This API tool has been developed and designed as a way of giving back to the developer community initiative by LoginRadius Developers. Your opinion is important to us. This way we can keep improving our product for the developer community. Please share your feedback <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSfa76A9ES0wvIF0_I7ebLAFugVhhDKB7em-WPbMjHPj1w7mOw/viewform\">here</a></em></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"August 31, 2020","updated_date":null,"description":"Email authentication, being the traditional way of authentication and used most widely. Increase in the spams has also increased the disposable email registrations. To reduce and identify such unwanted users, EVA(Email Verification API) is the tool, developed by LoginRadius developers.","title":"Email Verification API (EVA)","tags":["Free tool","Developer Resources ","Verification","Email"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7699115044247788,"src":"/static/4991e427faf331bcbd24d1c66c1cad40/ee604/eva.png","srcSet":"/static/4991e427faf331bcbd24d1c66c1cad40/69585/eva.png 200w,\n/static/4991e427faf331bcbd24d1c66c1cad40/497c6/eva.png 400w,\n/static/4991e427faf331bcbd24d1c66c1cad40/ee604/eva.png 800w,\n/static/4991e427faf331bcbd24d1c66c1cad40/f3583/eva.png 1200w,\n/static/4991e427faf331bcbd24d1c66c1cad40/e4d72/eva.png 1280w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Aman Agrawal","github":"aman-agrwl","avatar":null}}}}]},"markdownRemark":{"excerpt":"Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards…","fields":{"slug":"/identity/developer-first-identity-provider-loginradius/"},"html":"<p>Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards and refining approaches to building secure, seamless experiences.</p>\n<p>We’re here to support developers on that journey. We know how important simplicity, efficiency, and well-structured documentation are when working with identity and access management solutions. That’s why we’ve redesigned the <a href=\"https://www.loginradius.com/\">LoginRadius website</a>—to be faster, more intuitive, and developer-first in every way.</p>\n<p>The goal? Having them spend less time searching and more time building.</p>\n<h2 id=\"whats-new-and-improved-on-the-loginradius-website\" style=\"position:relative;\"><a href=\"#whats-new-and-improved-on-the-loginradius-website\" aria-label=\"whats new and improved on the loginradius website permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What’s New and Improved on the LoginRadius Website?</h2>\n<p>LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve spent the last few months redesigning our interface— making navigation more intuitive and reassuring that essential resources are easily accessible.</p>\n<p>Here’s a closer look at what’s new and why it’s important:</p>\n<h3 id=\"a-developer-friendly-dark-theme\" style=\"position:relative;\"><a href=\"#a-developer-friendly-dark-theme\" aria-label=\"a developer friendly dark theme permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>A Developer-Friendly Dark Theme</h3>\n<p><img src=\"/f46881583c7518a93bb24e94c32320de/a-developer-friendly-dark-theme.webp\" alt=\"This image shows how LoginRadius offers several authentication methods like traditional login, social login, passwordless login, passkeys and more in a dark mode.\">    </p>\n<p>Developers spend long hours working in dark-themed IDEs and terminals, so we’ve designed the LoginRadius experience to be developer-friendly and align with that preference.</p>\n<p>The new dark mode reduces eye strain, enhances readability, and provides a seamless transition between a coding environment and our platform. Our new design features a clean, modern aesthetic with a consistent color scheme and Barlow typography, ensuring better readability. High-quality graphics and icons are thoughtfully placed to enhance the content without adding visual clutter.</p>\n<p>So, whether you’re navigating our API docs or configuring authentication into your system, our improved interface will make those extended development hours more comfortable and efficient.</p>\n<h3 id=\"clear-categorization-for-loginradius-capabilities\" style=\"position:relative;\"><a href=\"#clear-categorization-for-loginradius-capabilities\" aria-label=\"clear categorization for loginradius capabilities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Clear Categorization for LoginRadius Capabilities</h3>\n<p><img src=\"/e5358b82be414940f3fb146013845933/capabilities.webp\" alt=\"This image shows a breakdown of all the LoginRadius CIAM capabilities, including authentication, security, UX, scalability and multi-brand management.\"></p>\n<p>We’ve restructured our website to provide a straightforward breakdown of our customer identity and access management platform capabilities, helping you quickly find what you need:</p>\n<ul>\n<li>Authentication: Easily understand <a href=\"https://www.loginradius.com/blog/identity/authentication-option-for-your-product/\">how to choose the right login method</a>, from traditional passwords and OTPs to social login, federated SSO, and passkeys with few lines of code.</li>\n<li>Security: Implement no-code security features like bot detection, IP throttling, breached password alerts, DDoS protection, and adaptive MFA to safeguard user accounts.</li>\n<li>User Experience: Leverage AI builder, hosted pages, and drag-and-drop workflows to create smooth, branded sign-up and login experiences.</li>\n<li>High Performance &#x26; Scalability: Confidently scale with sub-100ms API response times, 100% uptime, 240K+ RPS, and 28+ global data center regions.</li>\n<li>Multi-Brand Management: Efficiently manage multiple identity apps, choosing isolated or shared data stores based on your brand’s unique needs.</li>\n</ul>\n<p>This structured layout ensures you can quickly understand each capability and how it integrates into your identity ecosystem.</p>\n<h3 id=\"developer-first-navigation\" style=\"position:relative;\"><a href=\"#developer-first-navigation\" aria-label=\"developer first navigation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Developer-First Navigation</h3>\n<p><img src=\"/a8c155c2b6faf3d5f4b4de4e2b14d763/developers-menu.webp\" alt=\"This image shows the LoginRadius menu bar, highlighting the developer dropdown.\">   </p>\n<p>We’ve been analyzing developer workflows to identify how you access key resources. That’s why we redesigned our navigation with one goal in mind: to reduce clicks and make essential resources readily available.</p>\n<p>The new LoginRadius structure puts APIs, SDKs, and integration guides right at the menu bar under the Developers dropdown so you can get started faster. Our Products, Solutions, and Customer Services are also clearly categorized, helping development teams quickly find the right tools and make informed decisions.</p>\n<h3 id=\"quick-understanding-of-integration-benefits\" style=\"position:relative;\"><a href=\"#quick-understanding-of-integration-benefits\" aria-label=\"quick understanding of integration benefits permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Quick Understanding of Integration Benefits</h3>\n<p><img src=\"/b2f9a964a2da0ea83e2f8596b833bba7/we-support-your-tech-stack.webp\" alt=\"This image shows a list of popular programming languages and frameworks offered by LoginRadius.\"></p>\n<p>Developers now have a clear view of the tech stack available with LoginRadius, designed to support diverse business needs.</p>\n<p>Our platform offers pre-built SDKs for Node.js, Python, Java, and more, making CIAM integration seamless across popular programming languages and frameworks.</p>\n<h2 id=\"over-to-you-now\" style=\"position:relative;\"><a href=\"#over-to-you-now\" aria-label=\"over to you now permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Over to You Now!</h2>\n<p>Check out our <a href=\"https://www.loginradius.com/\">revamped LoginRadius website</a> and see how the improved experience makes it easier to build, scale, and secure your applications.</p>\n<p>Do not forget to explore the improved navigation and API documentation, and get started with our free trial today. We’re excited to see what you’ll build with LoginRadius!</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"February 21, 2025","updated_date":null,"description":"LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve redesigned our website interface, making navigation more intuitive and reassuring that essential resources are easily accessible.","title":"Revamped & Ready: Introducing the New Developer-First LoginRadius Website","tags":["Developer tools","API","Identity Management","User Authentication"],"pinned":true,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp","srcSet":"/static/80b4e4fbe176a10a327d273504607f32/61e93/hero-section.webp 200w,\n/static/80b4e4fbe176a10a327d273504607f32/1f5c5/hero-section.webp 400w,\n/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp 800w,\n/static/80b4e4fbe176a10a327d273504607f32/99238/hero-section.webp 1200w,\n/static/80b4e4fbe176a10a327d273504607f32/7c22d/hero-section.webp 1600w,\n/static/80b4e4fbe176a10a327d273504607f32/1258b/hero-section.webp 2732w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},"pageContext":{"limit":6,"skip":726,"currentPage":122,"type":"///","numPages":161,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}