tag:blogger.com,1999:blog-60650016947866601082024-03-08T17:04:12.654+05:30Sundeep MachadoSundeep Machado is a web developer who loves to write about social media and emerging technologies.sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.comBlogger434125tag:blogger.com,1999:blog-6065001694786660108.post-85405138024283122232024-02-13T23:47:00.001+05:302024-02-13T23:47:31.529+05:30Getting Started with NVIDIA Triton Server<p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF88_SxV57bzXAP7M1Bl5gYFseP2he52SKnxyHGZX8tTZh2FEHgWwapPFDxjrvPYmNo90kuOw7JG0ChVQcwiP4cGQ4RzP4H411VnlXoXwCMXia-V7VSmCDE1Wvua7SthOXBcXorJXwxmQNWGd8gCO1g-G86bKRLS0Y7Uy2mD6j-M3xnW8xJpF58lfhMeE/s1200/nvidia-triton-server.jpg" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="Getting Started with NVIDIA TRITON Server" border="0" data-original-height="630" data-original-width="1200" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF88_SxV57bzXAP7M1Bl5gYFseP2he52SKnxyHGZX8tTZh2FEHgWwapPFDxjrvPYmNo90kuOw7JG0ChVQcwiP4cGQ4RzP4H411VnlXoXwCMXia-V7VSmCDE1Wvua7SthOXBcXorJXwxmQNWGd8gCO1g-G86bKRLS0Y7Uy2mD6j-M3xnW8xJpF58lfhMeE/w400-h250/nvidia-triton-server.jpg" title="Getting Started with NVIDIA TRITON Server" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">NVIDIA Triton Inference Server<br /></td></tr></tbody></table><p><b>What is an Inference Server?</b><br /></p><p>The role of an Inference Server is to accept user input data and pass it to an underlying trained model in the required format and return the results. It is also widely known as a Prediction Server as the results are nothing but predictions (in most cases).<br /></p><p></p><p>The <a href="https://developer.nvidia.com/triton-inference-server" target="_blank">NVIDIA Triton server </a>is
a gold standard that standardizes AI model deployment and execution
across every workload and it is important to know how it works internally for your
custom or off the shelf models.</p><p><span></span></p><a name='more'></a> <p></p><p> </p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/1kOaYiNVgFs" width="320" youtube-src-id="1kOaYiNVgFs"></iframe></div><br /><p></p><p>The steps to install Triton Server are mentioned in detail on this <a href="https://github.com/triton-inference-server/server" target="_blank">Triton Github page</a>. </p><p><b><br /></b></p><p><b>There are few important things to know about Triton Inference Server:</b></p><ol style="text-align: left;"><li>NVIDIA recommends running it as a docker container, so that multiple instances can be run via Kubernetes <br /></li><li>You need to install the <a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html" target="_blank">NVIDIA Container Toolkit </a>especially if you are planning to work with a NVIDIA server class GPU like A100.<br /></li><li>You can load new ML models on the fly, however NVIDIA does not recommend this as allowing dynamic updates to the model repository can lead
to arbitrary code execution. The best way is to restart Triton each time with a command-line argument of the folder which contains the newly added models. </li><li>There is a Prometheus Metrics end-point for GPU, CPU utilization, Memory etc. We can easily send this data to Grafana to create custom dashboards. You can customize the metrics you want<br /></li></ol><p> </p><p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijGu1qNrqN0QIgBEUYdPs9nS0aWj-GEddUyAptJFoDYZxzi3iPQuCCBHqKhcESwF6A-6IZB-8OQAzBG5e7aVcST68DFzaYCzVbTz2oi866i_r7enR7wvUA21EvhItejn2TbRooBf8bpdJhkqSz3fegDzI8fUXqcqRpmeElJ8_Oap73c-QYngJlMy-XKng/s895/triton-server-nvidia-graphics-card.png" style="margin-left: auto; margin-right: auto;"><img alt="NVIDIA Triton Server on NVIDIA GeForce GTX 1660 Super Graphics Card" border="0" data-original-height="328" data-original-width="895" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijGu1qNrqN0QIgBEUYdPs9nS0aWj-GEddUyAptJFoDYZxzi3iPQuCCBHqKhcESwF6A-6IZB-8OQAzBG5e7aVcST68DFzaYCzVbTz2oi866i_r7enR7wvUA21EvhItejn2TbRooBf8bpdJhkqSz3fegDzI8fUXqcqRpmeElJ8_Oap73c-QYngJlMy-XKng/w640-h234/triton-server-nvidia-graphics-card.png" title="NVIDIA Triton Server on NVIDIA GeForce GTX 1660 Super Graphics Card" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">NVIDIA Triton Server running on commodity NVIDIA GeForce GTX 1660 Super</td><td class="tr-caption" style="text-align: center;"> <br /></td></tr></tbody></table><p></p><p>As you can see above, I have successfully deployed the models on the NVIDIA Triton server as discussed on <a href="https://github.com/triton-inference-server/server?tab=readme-ov-file#serve-a-model-in-3-easy-steps">this GitHub page</a> on my Ubuntu Desktop.<br /></p><p> </p><p> </p><p><br /></p><p><br /></p><p> </p><p><br /></p><p><br /></p><p> </p>sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-45969235962768512082023-11-21T12:56:00.007+05:302023-11-29T13:32:04.285+05:30Getting Started with Ollama.ai<p><br /><br /></p><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcc7ZGB4RQujaLd1CsNSHA4gZk754sCEjAQ9Dll-zDBcKPhfGZvU34FdSboS6Zeddob7jgsjGF_waAa001_fCJi6G1IJnRWzKG17Oy0OKDFDJfydq81DbU2lviHibk8Xf0sCZuTzx2d-aoYHJ73euCA_0dmL7iHcu8LAJQf0LbD2-BpvpchKaLHXqxRSM/s225/ollama.png" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="225" data-original-width="225" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcc7ZGB4RQujaLd1CsNSHA4gZk754sCEjAQ9Dll-zDBcKPhfGZvU34FdSboS6Zeddob7jgsjGF_waAa001_fCJi6G1IJnRWzKG17Oy0OKDFDJfydq81DbU2lviHibk8Xf0sCZuTzx2d-aoYHJ73euCA_0dmL7iHcu8LAJQf0LbD2-BpvpchKaLHXqxRSM/w164-h164/ollama.png" width="164" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><b>Ollama.ai</b></td></tr></tbody></table> <p></p><p><a href="http://Ollama.ai">Ollama.ai</a> is an excellent tool that helps you to run Large Language Models (LLMs) locally on your computer like <a href="https://ai.meta.com/llama/" target="_blank">Llama2</a>. </p><p></p><p>In this article, I decided to test whether Ollama can work with my consumer grade GPU - <a href="https://www.msi.com/Graphics-Card/GeForce-GTX-1660-SUPER-VENTUS-XS-OC" target="_blank">MSI GTX Super 1660</a></p><p> </p><p><span></span></p><a name='more'></a> <b><br /></b><p></p><h3 style="text-align: left;"><b>My Desktop configuration is as follows:</b><br /></h3><ol style="text-align: left;"><li>Ubuntu 22.04.03LTS Linux<br /></li><li>24 GB DDR4 RAM</li><li>Intel i3-8100 @3.60GHz with 4 Cores</li><li><a href="https://www.msi.com/Graphics-Card/GeForce-GTX-1660-SUPER-VENTUS-XS-OC" target="_blank">MSI GTX Super 1660</a> with 6 GB DDR6 RAM</li></ol><p>Before we start, we need to make sure that we have the greatest and the latest NVIDIA drivers and NVIDIA CUDA drivers: <a href="https://developer.nvidia.com/cuda-downloads">https://developer.nvidia.com/cuda-downloads</a>. The installation was easy and you need to validate whether your GPU drivers are working by using<b> nvidia-smi</b> command as below:</p><p></p><p></p><blockquote><b>If you do not have a Graphics Card, Ollama can run in CPU only mode too</b></blockquote><br /><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5EB3INUTDeAjA5yuTGOzqEXo7TdNCqz454uers7gpwyz7encfaYFmmWK4KT8boPZaFvi8jFksGaU91nBy6HqNYRLTkf8kOg-vtfDmTrYR8_T_K3_SW58apF2H8CUsxkknkktwPwjBCg8hJqz9qAX64gAHp3FBwtL1wR_F5BIZNnOtYzQRe7yRO00XWmQ/s803/nvidia-smi.png" style="margin-left: auto; margin-right: auto;"><img alt="nvidia-smi command used to validate your GPU works" border="0" data-original-height="400" data-original-width="803" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5EB3INUTDeAjA5yuTGOzqEXo7TdNCqz454uers7gpwyz7encfaYFmmWK4KT8boPZaFvi8jFksGaU91nBy6HqNYRLTkf8kOg-vtfDmTrYR8_T_K3_SW58apF2H8CUsxkknkktwPwjBCg8hJqz9qAX64gAHp3FBwtL1wR_F5BIZNnOtYzQRe7yRO00XWmQ/w640-h318/nvidia-smi.png" title="nvidia-smi command used to validate your GPU works" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><b>nvidia-smi command used to validate whether your GPU has the correct NVIDIA drivers</b><br /></td></tr></tbody></table><p></p><p>As you can see above, my NVIDIA graphics card has been detected and is ready to use.<br /></p><blockquote><p><b>We are going to use <a href="https://pypi.org/project/nvitop/" target="_blank">NVITOP</a> to measure GPU Performance. It is one of the best free tools to measure GPU performance for free</b> <br /></p></blockquote><p>You can install Ollama fron this official <a href="https://ollama.ai/download" target="_blank">Ollama download link</a>. As of November 2023, you can install Ollama only on a Mac or a Linux machine. Windows support will come soon.</p><p>You can now download the <a href="https://ollama.ai/library/llama2" target="_blank">llama2</a> model by entering the following command in your terminal:<br /></p><pre style="background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: "Courier New", Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;"><code>ollama pull llama2</code></pre><p>Similarly, if you want the <a href="https://ollama.ai/library/mistral">Mistral</a> model, you need to enter: </p><pre style="background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: "Courier New", Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;"><code>ollama pull mistral</code></pre><p></p><p><b>There is a comprehensive<a href="https://ollama.ai/library" target="_blank"> list of models that you can use on Ollama Website</a></b></p><p><b>Ollama has a REST API</b> to run and manage Machine Learning models. You can call the API as below:</p><pre style="background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: "Courier New", Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;"><code>curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt":"What is Life?"
}'
</code></pre><p>As you can see above, we are using the llama2 model. <br /></p><p>We can also use Ollama to work with a language model like <a class="group w-full" href="https://ollama.ai/library/mistral">The Mistral 7B model released by Mistral AI</a> by giving the model parameter as <b>mistral.</b><br /></p><p> </p><h3 style="text-align: left;"><b>Calling Ollama API with Mistral 7 b model:</b></h3><p>We will use the following prompt <br /></p><pre style="background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: "Courier New", Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;"><code>{<br /> "model": "mistral",<br /> "prompt":"What is the capital of the United States of America?",<br /> "stream":false<br /><br />}</code></pre><p></p><p>The response was:<br /></p><pre style="background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: "Courier New", Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;"><code>{<br /> "model": "mistral",<br /> "created_at": "2023-11-21T07:06:57.825617661Z",<br /> "response": "The capital city of the United States of America is Washington, D.C.",<br /> "done": true,<br /> "context": [<br /> 733,<br /> 16289,<br /> 28793,<br /> 28705,<br /> 1824,<br /> 349,<br /> 272,<br /> 5565,<br /> 302,<br /> 272,<br /> 2969,<br /> 3543,<br /> 302,<br /> 4352,<br /> 733,<br /> 28748,<br /> 16289,<br /> 28793,<br /> 13,<br /> 1014,<br /> 5565,<br /> 2990,<br /> 302,<br /> 272,<br /> 2969,<br /> 3543,<br /> 302,<br /> 4352,<br /> 349,<br /> 5924,<br /> 28725,<br /> 384,<br /> 28723,<br /> 28743,<br /> 28723<br /> ],<br /> "total_duration": 3314902170,<br /> "load_duration": 2814112001,<br /> "prompt_eval_count": 20,<br /> "prompt_eval_duration": 152161000,<br /> "eval_count": 16,<br /> "eval_duration": 335794000<br />}</code></pre><p></p><p>During the test, I had kept <b>nvitop</b> running in another terminal:</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg79jhnOz6CRglB6hM2IIGncfJaNyDq-b55p-6TfWLUiel2q6j2-DDfwc4BhcO8TtI0FIbH2oIzh3_Bm1f6-QEA7HFgwTe5qTdJMTxEcJu97S6Lx-vSoJ8BWfXvg8AuL9v4AKWftHt8y05kRXb2h4_VkPZTHoY6fPsbc50qIgAo24gUhB5Ue1uNekXQnjA/s1788/mistral-ollama.png" style="margin-left: auto; margin-right: auto;"><img alt="nvitop" border="0" data-original-height="577" data-original-width="1788" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg79jhnOz6CRglB6hM2IIGncfJaNyDq-b55p-6TfWLUiel2q6j2-DDfwc4BhcO8TtI0FIbH2oIzh3_Bm1f6-QEA7HFgwTe5qTdJMTxEcJu97S6Lx-vSoJ8BWfXvg8AuL9v4AKWftHt8y05kRXb2h4_VkPZTHoY6fPsbc50qIgAo24gUhB5Ue1uNekXQnjA/w640-h207/mistral-ollama.png" title="nvitop" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">NVITOP command output to monitor GPU (Click to Zoom)<br /></td></tr></tbody></table><br /><p>As you can see the GPU Memory shot up to almost 5GB. This is because, 7B parameter models generally require at least 8GB of RAM. The actual size of the model was around 4.1GB. <br /></p><p>You can similarly download other models and work with Ollama.ai. You can use chat to send your prompts as shown below:</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="341" src="https://www.youtube.com/embed/frZH8mbhv-M" width="410" youtube-src-id="frZH8mbhv-M"></iframe></div><br /><p></p><p>You can invoke the chat interface by entering the following in the terminal: <br /></p><p></p><pre style="background: rgb(238, 238, 238); border-bottom-color: initial; border-bottom-style: initial; border-image: initial; border-left-color: initial; border-left-style: initial; border-radius: 10px; border-right-color: initial; border-right-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top: 5px solid rgb(221, 221, 221); border-width: 5px 0px 0px; color: #444444; font-family: "Courier New", Courier, monospace; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin-bottom: 1.5em; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 12px; vertical-align: baseline;"><code>ollama run mistral</code></pre>sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-40482200551617426192023-11-09T15:05:00.003+05:302023-11-09T15:05:46.338+05:30A list of things to remember when deploying a Large Language Model (LLM) on Production<p> </p><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjFSN3ArOrKCzUOTOtJ1_TzVxSZZcZdJKYvun2dzkYiVgWeui_nHGCBPjPIOUsz40_xVXxHMRfoQVgd92ucLwR6XJbLy98avWZtCot-COQOxaamhKeB7sG84RgA4QrFWTM-W7ZaruYC3jBzsUDhX6XagM4_8j9VIYiwJ_b8i3PyudnOQ4qgOiqkntLZCE/s1200/1200px-Wiki-llama.jpg" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="LLAMA" border="0" data-original-height="900" data-original-width="1200" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjFSN3ArOrKCzUOTOtJ1_TzVxSZZcZdJKYvun2dzkYiVgWeui_nHGCBPjPIOUsz40_xVXxHMRfoQVgd92ucLwR6XJbLy98avWZtCot-COQOxaamhKeB7sG84RgA4QrFWTM-W7ZaruYC3jBzsUDhX6XagM4_8j9VIYiwJ_b8i3PyudnOQ4qgOiqkntLZCE/w200-h150/1200px-Wiki-llama.jpg" title="LLAMA" width="200" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">LLAMA</td></tr></tbody></table><br /><p></p><p class="article-editor-content__paragraph" data-pm-slice="1 1 []"> A small checklist that intends to make your LLM deployment easier.</p><p class="article-editor-content__paragraph" data-pm-slice="1 1 []"> This checklist is intended to help you get started with deploying your own Model or an open source one like <a href="https://ai.meta.com/llama/" target="_blank">Llama2 </a></p><p class="article-editor-content__paragraph" data-pm-slice="1 1 []"><br /></p><span><a name='more'></a></span><p class="article-editor-content__paragraph" data-pm-slice="1 1 []"><br /></p><p class="article-editor-content__paragraph" data-pm-slice="1 1 []"><b>1. There is no perfect model that will fit your use case 100% </b></p><p class="article-editor-content__paragraph">Although the excitement around Large Language Models (LLM) is justified, very few people actually know in advance which model is the best for them. A very good starting point is looking at a <a class="article-editor-content__link article-editor-content__link" href="https://huggingface.co/docs/hub/model-cards" rel="noopener noreferrer">Model Card</a>, if it exists. There are some models that perform some particular tasks better than others. For example, there are thousands of models that cater to <a class="article-editor-content__link article-editor-content__link" href="https://huggingface.co/models?pipeline_tag=summarization" rel="noopener noreferrer">Summarization</a> use case. After selecting a particular model, you will need to validate whether it performs particularly well with your in house proprietary data. </p><p class="article-editor-content__paragraph"><b>2. You don't always need a GPU </b></p><p class="article-editor-content__paragraph"><b> </b>A GPU is very useful when you need to work with a very large dataset and need a very high bandwidth for your use-case. The average price of a NVIDIA H100 is <b>$30,000 </b>which is <b>around </b>₹ <b>2.5 million Indian rupees</b> and that of <b>NVIDIA A100 is $10000 which is around ₹ 8,33,000 Indian rupees.</b>There are a lot of use cases that don't need a GPU. If you are experimenting with a small use-case, you can get most of a CPU to make your models work. You can easily spin up a CPU heavy virtual machine on a cloud provider.</p><p class="article-editor-content__paragraph"><b>3. Expect very high response time </b></p><p class="article-editor-content__paragraph">The response time of a Large Language Model is very high. There are a lot of factors at play like below:</p><p class="article-editor-content__paragraph"> <b>Parameters</b>: Parameters in large language models (LLMs) are the variables that are learned by the model during training. They represent the weights and biases of the neural network that the LLM is composed of. The number of parameters in an LLM is a measure of its size and complexity. Larger models have more parameters and can learn more complex relationships between words and phrases.</p><p class="article-editor-content__paragraph"><b>Temperature</b>: Temperature in LLM is a hyper-parameter that controls the randomness of the model's output. A higher temperature will result in more creative and imaginative text, while a lower temperature will result in more accurate and factual text. </p><p class="article-editor-content__paragraph"><b>K inputs</b>: K inputs in LLM refers to the number of tokens that the model considers when generating the next token. This is a hyper-parameter that can be tuned to control the creativity and diversity of the generated text. </p><p class="article-editor-content__paragraph"><b>Prompt</b>: A prompt in LLM is a piece of text that is used to guide the model to generate a specific output. Prompts can be simple or complex, and they can include instructions, questions, or any other type of text that provides the model with context.</p><p class="article-editor-content__paragraph"></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPoLhyphenhyphenAFp2jT4tC_t4iFq1w16qnvS2U8hoxAg0yarEU8eIYCBUmD8lXZ9-32LPQzx_XCjM-l7Dqp7UNAfX5N1cRJVytgjNPiZCFcjzthzJzwydDTECKsnvL-3qV_MBBRPctb60a0d5aLzmjqBDkQ92KcZcHHdKtvh0cz5SVlOQlq9PJpX1JLcOjk-xFVI/s2140/h100-nvidia.jpg" style="margin-left: auto; margin-right: auto;"><img alt="Nvidia H100" border="0" data-original-height="1204" data-original-width="2140" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPoLhyphenhyphenAFp2jT4tC_t4iFq1w16qnvS2U8hoxAg0yarEU8eIYCBUmD8lXZ9-32LPQzx_XCjM-l7Dqp7UNAfX5N1cRJVytgjNPiZCFcjzthzJzwydDTECKsnvL-3qV_MBBRPctb60a0d5aLzmjqBDkQ92KcZcHHdKtvh0cz5SVlOQlq9PJpX1JLcOjk-xFVI/w320-h180/h100-nvidia.jpg" title="Nvidia H100" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Nvidia H100</td></tr></tbody></table><br /> <p></p><blockquote class="article-editor-content__blockquote"><p class="article-editor-content__paragraph">The output of a Large Language Model depends on many factors. It also depends on your infrastructure and system architecture. It is a matter of fact that models running on a GPU have lower inference times than equivalent models running on a CPU.</p></blockquote><p class="article-editor-content__paragraph"><i>Note : Depends on underlying Hardware of CPU/GPU</i></p><figure class="article-editor-content__figure-image"><img data-media-urn="urn:li:digitalmediaAsset:D4D12AQGlush5aqsW8g" data-src="https://media.licdn.com/dms/image/D4D12AQGlush5aqsW8g/article-inline_image-shrink_1000_1488/0/1698924767152?e=1704931200&v=beta&t=gpxJdchlTiG5rl9D-vBht7dPoMctoL7rz6lhp8izsIc" /><figcaption class="article-editor-content__figure-image-caption">NVIDIA H100 - </figcaption></figure><p class="article-editor-content__paragraph"></p><p class="article-editor-content__paragraph">4. <b>Use existing tools as much as possible, if that fails accept new ones</b></p><p class="article-editor-content__paragraph">There are pretty amazing deployment tools like <a class="article-editor-content__link article-editor-content__link" href="https://www.langchain.com/" rel="noopener noreferrer">Langchain</a>, that help in making LLM deployment easier. <a class="article-editor-content__link article-editor-content__link" href="https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/" rel="noopener noreferrer">You can also use your existing Kubernetes clusters for the same.</a> Every cloud vendor is now making it easier to deploy Machine Learning model quickly and efficiently.</p><p class="article-editor-content__paragraph">5.<b> Secure your LLM - MLSecOps and Model Bias</b></p><p class="article-editor-content__paragraph">MLSecOps, or Machine Learning Security Operations, is a discipline that combines cybersecurity practices with ML operations to protect models, data, and the ML infrastructure. MLSecOps is concerned with identifying and mitigating the unique security risks associated with machine learning systems, such as adversarial attacks, data poisoning, and model bias.</p><blockquote class="article-editor-content__blockquote"><p class="article-editor-content__paragraph"> Security and Bias Prevention should not never be an afterthought </p></blockquote><p class="article-editor-content__paragraph">Model bias refers to when a machine learning model systematically makes errors or exhibits unfair behavior towards certain group. Model abuse refers to the malicious use of AI/ML models to cause harm.</p><p class="article-editor-content__paragraph">These are real and new problems and the best minds around the world are trying to solve them in innovative ways. Always Learn and Improve.</p>sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-77807584679457256122022-05-04T15:27:00.007+05:302023-08-30T11:21:42.176+05:30Free Kubernetes cluster on Oracle Cloud using k3s<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXNgSKUCasl-QOX86TyNzLBGlO48GqwcQevxYSnSvPsvj1LXvk1mWLnofEfMUYWqw6Au5zv3pN3DX1kbrNEElK1cCGwMgmltzQvY_rytm1htY-bCRt-YQD7SLVDHMLHrs-s02X5ZSpXiSm9UKAz_QvDEMYYk9yTh4R8gWu9r3xoaeLWDi1kxS8nHIPl-I/s900/K3S.webp" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="900" data-original-width="720" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXNgSKUCasl-QOX86TyNzLBGlO48GqwcQevxYSnSvPsvj1LXvk1mWLnofEfMUYWqw6Au5zv3pN3DX1kbrNEElK1cCGwMgmltzQvY_rytm1htY-bCRt-YQD7SLVDHMLHrs-s02X5ZSpXiSm9UKAz_QvDEMYYk9yTh4R8gWu9r3xoaeLWDi1kxS8nHIPl-I/w160-h200/K3S.webp" width="160" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">K3S</td></tr></tbody></table><p> <b></b></p><p></p><br />Oracle Cloud has a very generous<a href="https://www.oracle.com/in/cloud/free/#always-free" target="_blank"> forever free tier</a>. I have been using k3s on my Raspberry Pi 4 machines for sometime in my local home network and it is working amazingly well.<p></p><p><br /></p><p></p><p>I was very keen to deploy <a href="https://k3s.io/">k3s</a> for free on a cloud provider as a backup to my local clusters and finally managed to do that recently.</p><br /><p> </p><span><a name='more'></a></span><p><span style="font-size: medium;"><b>How to deploy k3s on Oracle Cloud ?</b></span></p><p><span style="font-size: medium;"><b></b></span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg0Jn2PfbsgXIOiovctaUV1Au2wym-eVAobeVdUGUGmMzjCn-CfSaGB4inKXq8GKelSb_X3oEk-M0hUTQOPH_a845LSUJj1wwT3NatLUHU0GKTK2GEEJjVVn-DzjKRD6osqI3eYOUdu4jFMqbddr1XKeJzG4_1hnUp0iOrea24lzRx4K4w9Bf_sVTO7=s523" style="margin-left: auto; margin-right: auto;"><img alt="k3s cluster on Oracle Cloud" border="0" data-original-height="76" data-original-width="523" src="https://blogger.googleusercontent.com/img/a/AVvXsEg0Jn2PfbsgXIOiovctaUV1Au2wym-eVAobeVdUGUGmMzjCn-CfSaGB4inKXq8GKelSb_X3oEk-M0hUTQOPH_a845LSUJj1wwT3NatLUHU0GKTK2GEEJjVVn-DzjKRD6osqI3eYOUdu4jFMqbddr1XKeJzG4_1hnUp0iOrea24lzRx4K4w9Bf_sVTO7=s16000" title="free-k3s-cluster-oracle-cloud" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><b>Kubernetes k3s cluster on Oracle Forever free tier</b><br /></td></tr></tbody></table><span style="font-size: medium;"><b> </b></span><p></p><p>We are going to use the forever free tier. As of December 2021, Oracle is giving us below options:</p><ul style="text-align: left;"><li> <b>ARM based machines with 24 GB RAM and 4 CPUs cores in total </b>- I have decided to utilize this as 2 separate machines with each having 12 GB RAM, 2 CPUs and 15 GB default volume storage. One machine will be main node for k3s and other will be a worker node<br /></li><li> <b>Two AMD machines with 1 Core and 1 GB RAM</b> - I have used one machine as a k3s worker and the other as as<b> MySQL database </b>for high availability for k3s cluster</li></ul><p> The installation of k3s is pretty straightforward. It is important to remember that we have taken one node as master and rest as slaves.</p><p> </p><h2 style="text-align: left;">Machine Setup<br /></h2><p> </p><p><b>On Master node (we will call it k3s-master)</b><br /></p><p><br /></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvKYDJT8-O6ukw45oeP0T5J4Zp4ObbZUfMkVX7yQPHQAOUX58EUpES82yxgSkjuir07Ucv0BjXPSr8aIttYG4MWr45mBIgyl3-mqLr58vkmBZ1a-4JyzgSzPJ8xsFhRDLFqj3U2_FC0Pn650ZnvfZrejxRkcHglQH4z_-PHKuCIHAMJZ8kuzKgp_h/s1144/oracle-cloud-k3s-arm.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="545" data-original-width="1144" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGvKYDJT8-O6ukw45oeP0T5J4Zp4ObbZUfMkVX7yQPHQAOUX58EUpES82yxgSkjuir07Ucv0BjXPSr8aIttYG4MWr45mBIgyl3-mqLr58vkmBZ1a-4JyzgSzPJ8xsFhRDLFqj3U2_FC0Pn650ZnvfZrejxRkcHglQH4z_-PHKuCIHAMJZ8kuzKgp_h/w471-h224/oracle-cloud-k3s-arm.png" width="471" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Ampere ARM instance with 2 Octacore CPU and 12 GB RAM<br /></td></tr></tbody></table><p></p><p>1. Visit <a href="https://cloud.oracle.com/compute/instances/create" target="_blank">Oracle Cloud create instance</a> and create a VM (virtual machine) with Ubuntu as image and the CPU configuration as ARM and hard disk around 15 GB. This will be <b>k3s-master</b></p><p>2. Now remember and download both the ssh keys as we need them for other machines:</p><p> </p><p></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkhxoNcn__jYHYraXKKXxRkJRSwxO63Z_zsgDSWXK14mh8gyRNKjwo0YLR1mRcr12mgzjGaH3KWC_89gwOnLQqjJ8cUjLX1MOsq3hAWQ0-0UX80Ti_mULYgWgoXXxzSeleJXSnQRYFWpaWCkgd5O0z9vLQ4gSrscaibFXNGvgWQqx9cfQTHd_b4ZdV/s956/ssh-key-oracle-cloud.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="300" data-original-width="956" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkhxoNcn__jYHYraXKKXxRkJRSwxO63Z_zsgDSWXK14mh8gyRNKjwo0YLR1mRcr12mgzjGaH3KWC_89gwOnLQqjJ8cUjLX1MOsq3hAWQ0-0UX80Ti_mULYgWgoXXxzSeleJXSnQRYFWpaWCkgd5O0z9vLQ4gSrscaibFXNGvgWQqx9cfQTHd_b4ZdV/w400-h125/ssh-key-oracle-cloud.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">SSH key menu in Oracle Cloud</td><td class="tr-caption" style="text-align: center;"><br /></td></tr></tbody></table> <p></p><p>3. Once the machine is green (shows active in the<a href="https://cloud.oracle.com/compute/instances" target="_blank"> instances section of Oracle Cloud</a>), use the ssh key to login via the public ip address:<br /> </p><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #202020; color: #d0d0d0; tab-size: 4;"><code class="language-bash" data-lang="bash">ssh -i </code><b>ssh -i id.rsa ubuntu@<PUBLIC IP ADDRESS></b><code class="language-bash" data-lang="bash"><span style="color: #ed9d13;"></span></code></pre><p>Please change the IP address as per your machine. You might need to install <a href="https://www.putty.org/">Putty </a>if you are using a Windows machine. Change the hostname by entering on the terminal:</p><p><i><b>hostnamectl set-hostname </b><b><b>k3s-master</b></b></i></p><p><i><b>hostnamectl</b></i></p><p><b>On Slave nodes (we will call it k3s-mysql, k3s-amd-node1 and k3s-arm-node2)</b></p><p>1. Create another instance with AMD as CPU type, 10 GB HDD and 1 GB of RAM. This should be within free limits. This will be <b>k3s-mysql</b> (use <b>hostnamectl </b>command as before). Remember to specify the public ssh key you downloaded before in the ssh key section. We need to install mysql on this machine which can be done as per this article - <a href="https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04" target="_blank">install MySQL on ubuntu</a>. Make sure you create a new user and a database. Give <a href="https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql" target="_blank">admin rights to this user to that database only in MySQL</a> You need to note the private IP of this machine. <br /></p><p>2. Create another instance with AMPERE ARM as CPU type, 2 OCTACORE CPU, 10 GB HDD and 12 GB of
RAM. This should be within free limits. This will be <b>k3s-arm-node2 </b>(use <b>hostnamectl </b>command as before). Remember to specify the public ssh key you downloaded before in the ssh key section. Note the private IP address of all machines so that we can use them and also change their hostnames<br /></p><p><br /></p><h2 style="text-align: left;">Installing k3s<br /></h2><p>1. Login to every machine and make sure you enter the following command:</p><p><i><b>sudo iptables -F</b></i><br /></p><p> This commands flushes the iptables rules.</p><p>2. Now in <b>k3s-master (use ssh to log in), </b>we will install k3s server in high availability mode using the below command:</p><p><br /></p><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #202020; color: #d0d0d0; tab-size: 4;"><code class="language-bash" data-lang="bash">curl -sfL https://get.k3s.io | sh -s - server <span style="color: #ed9d13;">\
</span><span style="color: #ed9d13;"></span> --token=SECRET <span style="color: #ed9d13;">\
</span><span style="color: #ed9d13;"></span> --datastore-endpoint=<span style="color: #ed9d13;">"mysql://username:password@tcp(hostname:3306)/database-name"</span></code></pre><p>(Please replace the username, password, hostname - private IP of <b>k3s-mysql </b>and database-name as per your configuration)</p><p>3. Note the token string <b>(K3S_TOKEN</b>) which you get on <b>k3s-master </b>by using following command:<br /></p><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #202020; color: #d0d0d0; tab-size: 4;"><code class="language-bash" data-lang="bash">cat /var/lib/rancher/k3s/server/token</code></pre><p>This will be used by worker nodes to join the k3s servers<br /></p><p>4. Now log in to each worker node and enter following command:</p><p>
</p><div class="highlight"><pre style="-moz-tab-size: 4; -o-tab-size: 4; background-color: #202020; color: #d0d0d0; tab-size: 4;"><code class="language-bash" data-lang="bash"><span style="color: #40ffff;">K3S_TOKEN</span>=SECRET k3s agent --server https://fixed-registration-address:6443</code></pre></div><p>fixed-registration-address ---> <b>k3s-master private IP address<br /></b></p><p>SECRET ---> <b>K3S_TOKEN </b>from step 3.</p><p><b>That's it. Enjoy your free k3s (Kubernetes) cluster on Oracle Cloud.</b><br /></p><p><br /><b></b></p><p><br /></p><p> </p><p><br /></p><p><br /></p><br />sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-48979638466746413382020-11-04T17:18:00.002+05:302020-11-04T17:18:39.322+05:30US Elections 2020 - The best way to keep track of what is happening<p> </p><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-lg93P_0UXbU/X6KOzl6mFGI/AAAAAAAAG6k/6o52R2nvtiw1PgdMFUQVem8keHudSc6FwCLcBGAsYHQ/s1312/us-elections-2020.png" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img alt="US Elections 2020" border="0" data-original-height="808" data-original-width="1312" height="213" src="https://1.bp.blogspot.com/-lg93P_0UXbU/X6KOzl6mFGI/AAAAAAAAG6k/6o52R2nvtiw1PgdMFUQVem8keHudSc6FwCLcBGAsYHQ/w346-h213/us-elections-2020.png" title="US Elections 2020" width="346" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">US Elections 2020 is too close to call<br /></td></tr></tbody></table><p></p><p>The US Elections 2020 is one of the most widely watched event in the world.</p><p><br /></p><p>We look at the ways the Tech / Media Companies are trying to make sense of the data.</p><p><br /></p><p><br /></p><p><br /></p><span><a name='more'></a></span><p><br /></p><p><a href="https://www.google.com/search?client=firefox-b-d&q=us+elections" rel="nofollow" target="_blank"><span style="font-size: large;"><b>Google</b></span></a></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVy-KLj9SOLN_RNaPeQ7Oxklhk6NUqtgUgMM4WLgYqqqEtdpYvINhysKZ5ljuafCR9sFb-N5jusdgApF-134Z73eyY4etgZORfPTnANdMSCk5ttai2NpeZRwysFV7GqHeN_WyjAdzdcKE/s1636/google-us-elections-2020.png" style="margin-left: auto; margin-right: auto;"><img alt="US Elections 2020 by Google" border="0" data-original-height="1636" data-original-width="1310" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVy-KLj9SOLN_RNaPeQ7Oxklhk6NUqtgUgMM4WLgYqqqEtdpYvINhysKZ5ljuafCR9sFb-N5jusdgApF-134Z73eyY4etgZORfPTnANdMSCk5ttai2NpeZRwysFV7GqHeN_WyjAdzdcKE/w512-h640/google-us-elections-2020.png" title="US Elections 2020 by Google" width="512" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">A simple search for US Elections shows this Minimalist Widget<br /></td></tr></tbody></table><p></p><p>Google is leading the way in showing a minimalist widget that gives you accurate data from<b> Associate Press</b>. This works quite well on Mobile devices too. You can narrow down further to get specific data about "Who is winning the Senate" etc.<br /></p><p><b><span style="font-size: large;"><a href="https://www.theguardian.com/us-news/live/2020/nov/04/us-election-2020-votes-live-updates-donald-trump-joe-biden-latest-presidential-news-updates" target="_blank">The Guardian Website</a></span></b></p><p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-VzePrLsycxA/X6KR32a1N_I/AAAAAAAAG64/PYeevrKxhy8B7EbQgFkDe2nYYw0dWXvWwCLcBGAsYHQ/s1310/Screen%2BShot%2B2020-11-04%2Bat%2B11.32.49.png" style="margin-left: auto; margin-right: auto;"><img alt="Guardian Live Blog" border="0" data-original-height="1150" data-original-width="1310" height="562" src="https://1.bp.blogspot.com/-VzePrLsycxA/X6KR32a1N_I/AAAAAAAAG64/PYeevrKxhy8B7EbQgFkDe2nYYw0dWXvWwCLcBGAsYHQ/w640-h562/Screen%2BShot%2B2020-11-04%2Bat%2B11.32.49.png" title="Guardian Live Blog" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The Guardian Website has created a Live Blog for US Elections<br /></td></tr></tbody></table><p></p><p>The Guardian website is one of the most technically advanced news website. It is known for having a right blend of tech and user friendly aesthetics.</p><p><br /></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-qXh-65j7reY/X6KSNqY_inI/AAAAAAAAG7A/YII_Yd98yi8TvDABrsQB86fiZjIl_Z9WQCLcBGAsYHQ/s2048/Screen%2BShot%2B2020-11-04%2Bat%2B11.33.22.png" style="margin-left: auto; margin-right: auto;"><img alt="Guardian US Election 2020 Map" border="0" data-original-height="1254" data-original-width="2048" height="392" src="https://1.bp.blogspot.com/-qXh-65j7reY/X6KSNqY_inI/AAAAAAAAG7A/YII_Yd98yi8TvDABrsQB86fiZjIl_Z9WQCLcBGAsYHQ/w640-h392/Screen%2BShot%2B2020-11-04%2Bat%2B11.33.22.png" title="Guardian US Election 2020 Map" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Check for a particular State in real time using data from Associated Press<br /></td></tr></tbody></table><br /><p><b><span style="font-size: large;"><a href="https://www.nytimes.com/interactive/2020/11/03/us/elections/results-president.html" rel="nofollow" target="_blank">The New York Times</a></span></b><br /></p><p> The New York Times US Election 2020 Website is the advanced version of the Guardian website.</p><p><br /></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-_OaV4qutSXM/X6KTRN02jJI/AAAAAAAAG7M/CmW0WZDO7d8ryVBvN5P66_muobijPrZxwCLcBGAsYHQ/s1024/nyt-us-elections-2020-website.png" style="margin-left: auto; margin-right: auto;"><img alt="New York Times US Elections 2020 Website" border="0" data-original-height="1024" data-original-width="1000" height="640" src="https://1.bp.blogspot.com/-_OaV4qutSXM/X6KTRN02jJI/AAAAAAAAG7M/CmW0WZDO7d8ryVBvN5P66_muobijPrZxwCLcBGAsYHQ/w624-h640/nyt-us-elections-2020-website.png" title="New York Times US Elections 2020 Website" width="624" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">NYT Homepage for US Elections 2020<br /></td></tr></tbody></table><p> </p><p>The only issue is the irritating pop-up that comes up after you exhaust reading the 5 article limit imposed. (you can by pass it by surfing the website in <a href="https://www.sundeepmachado.com/2010/01/how-to-use-google-chrome-in-incognito.html" rel="nofollow" target="_blank">incognito mode</a>)<br /></p><p><b><span style="font-size: large;"><a href="https://www.washingtonpost.com/elections/">The Washington Post</a></span></b><br /></p><p> </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-kNsW-JTwTB8/X6KUbDW2_fI/AAAAAAAAG7Y/iiWtm19J43IN1UPuYK8l0-v4srR9BOJtgCLcBGAsYHQ/s1626/washington-post-us-elections-2020.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="814" data-original-width="1626" height="320" src="https://1.bp.blogspot.com/-kNsW-JTwTB8/X6KUbDW2_fI/AAAAAAAAG7Y/iiWtm19J43IN1UPuYK8l0-v4srR9BOJtgCLcBGAsYHQ/w640-h320/washington-post-us-elections-2020.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">The Washington Post US Elections 2020 Homepage<br /></td></tr></tbody></table> <p></p><p>The Washington post too has a very good minimalist website that you can use to keep track of what is happening.<br /></p><p> <br /></p>sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-44802663531243047322020-10-30T11:06:00.000+05:302020-10-30T11:06:12.084+05:30Microsoft Clarity - An easy to use User Behavior Analytics Tool<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-MzGFEyGu2Oo/X5ufUz4tgwI/AAAAAAAAG4s/8vOJJy152JYDIOmw0Oisl0K5kVpcVzeiACLcBGAsYHQ/s754/microsoft-clarity.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Microsoft Clarity" border="0" data-original-height="652" data-original-width="754" height="173" src="https://1.bp.blogspot.com/-MzGFEyGu2Oo/X5ufUz4tgwI/AAAAAAAAG4s/8vOJJy152JYDIOmw0Oisl0K5kVpcVzeiACLcBGAsYHQ/w200-h173/microsoft-clarity.png" title="Microsoft Clarity" width="200" /></a></div> <p></p><p>Microsoft Clarity is a free service that helps users to understand how users are interacting with their websites.</p><p>The services offers the ability to record user sessions and also generates a Heat Map for clicks.</p><p><br /></p><p><br /></p><span><a name='more'></a></span><p><br /></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-CWLkoaLvcww/X5ukgJ08TFI/AAAAAAAAG5Y/p3mVM_8eUBosscqWInNLhmBeY1t6D7acwCLcBGAsYHQ/s1464/microsoft-clarity-heatmap.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Microsoft Clarity heatmap" border="0" data-original-height="808" data-original-width="1464" height="354" src="https://1.bp.blogspot.com/-CWLkoaLvcww/X5ukgJ08TFI/AAAAAAAAG5Y/p3mVM_8eUBosscqWInNLhmBeY1t6D7acwCLcBGAsYHQ/w640-h354/microsoft-clarity-heatmap.png" title="microsft clarity heatmap" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Microsoft Clarity Heatmap feature<br /></td></tr></tbody></table><p><br /></p><p><b>How to Setup Microsoft Clarity?</b></p><p>You ca use your existing Microsoft, Facebook or Google Account to start using Microsoft Clarity. You need to visit the official <a href="https://clarity.microsoft.com/">Microsoft Clarity website</a> to get started.</p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-h67AHo_Frg4/X5uhHMgWD8I/AAAAAAAAG44/u_iCh5Aow7ImcmKDOuK61Pc60tNrsNvvgCLcBGAsYHQ/s966/Screen%2BShot%2B2020-10-29%2Bat%2B19.01.31.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="New Project in Microsoft Clarity" border="0" data-original-height="794" data-original-width="966" height="329" src="https://1.bp.blogspot.com/-h67AHo_Frg4/X5uhHMgWD8I/AAAAAAAAG44/u_iCh5Aow7ImcmKDOuK61Pc60tNrsNvvgCLcBGAsYHQ/w400-h329/Screen%2BShot%2B2020-10-29%2Bat%2B19.01.31.png" title="New Project Microsoft Clarity" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Creating a new project in Microsoft Clarity<br /></td></tr></tbody></table> </p><p>After you log in, you need to setup a new Project in Clarity as above. After that you need to add tracking Code to your website. This needs to go inside the head tag of your website HTML code.<br /></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3n_U2djPHOSODZRegkwNu646dXp2u-PFqf_caqsvV0LZbVPW4apR6f8kY6pHKyB0OaaiR2MxD9PwV79gZ8ys7z-x2IvTRsitqI08RnSl9hb61NZrqxjD4_4f7qhNGDv3WtEEKy-7IqeA/s1364/tracking-code-clarity.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Add tracking Code for Microsoft Clarity" border="0" data-original-height="1290" data-original-width="1364" height="606" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3n_U2djPHOSODZRegkwNu646dXp2u-PFqf_caqsvV0LZbVPW4apR6f8kY6pHKyB0OaaiR2MxD9PwV79gZ8ys7z-x2IvTRsitqI08RnSl9hb61NZrqxjD4_4f7qhNGDv3WtEEKy-7IqeA/w640-h606/tracking-code-clarity.png" title="Tracking Code for Microsoft Clarity" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Adding a tracking code for Microsoft clarity<br /></td></tr></tbody></table><p>It might take up to 2 hours for data to show up on your Microsoft Clarity Dashboard after the tracking code is inserted on your websites.</p><p> </p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-hZevCbNb7Os/X5ujgb4eMjI/AAAAAAAAG5M/8HeakqOD_6cb4sIWfrvVv_TAx3Rgilo_ACLcBGAsYHQ/s1438/microsoft-clarity-google-analytics-integration.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Microsoft Clarity and Google analytics integration" border="0" data-original-height="636" data-original-width="1438" height="284" src="https://1.bp.blogspot.com/-hZevCbNb7Os/X5ujgb4eMjI/AAAAAAAAG5M/8HeakqOD_6cb4sIWfrvVv_TAx3Rgilo_ACLcBGAsYHQ/w640-h284/microsoft-clarity-google-analytics-integration.png" title="Clarity and Google Annalytics integration" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Microsoft Clarity and Google Analytics Integration<br /></td></tr></tbody></table><br /> </p><p>Microsoft Clarity also has support for Google Analytics, this creates a Clarity user session link in your Google Analytics Dashboard.</p><p>Microsoft Clarity does not replace your existing analytics solution like <b>Google Analytics</b> . It is meant to help you understand more about your users behavior. It is a great place to start for a new user who wants to have basic understanding of website users. There is a competing free service from <a href="https://www.sundeepmachado.com/2017/05/how-to-replay-user-actions-website.html">Yandex Metrica</a> too.<br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><br /><p><br /></p><p><br /></p>sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-61103697654324156842020-02-18T17:24:00.003+05:302020-02-18T17:24:52.805+05:30Using Gitlab for backing up data to AWS S3 and Google Cloud Storage<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKlAeeN37cLQb-8jlmMUNpHn0_oFTcrTKHoqW1BuJjt18lMRppAI3M8ZyhFHGAdvLTcXIxPoDGO1sr0n3fMswpvIbhANnm3W7aeieH0yd8pKk1BWdkE5XfgH7-Irfm_X5_VUwRCCL1O1s/s1600/gitlab-aws-s3-gcp-cloud-storage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="aws-s3-gitlab-cicd-gcp-storage" border="0" data-original-height="745" data-original-width="1600" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKlAeeN37cLQb-8jlmMUNpHn0_oFTcrTKHoqW1BuJjt18lMRppAI3M8ZyhFHGAdvLTcXIxPoDGO1sr0n3fMswpvIbhANnm3W7aeieH0yd8pKk1BWdkE5XfgH7-Irfm_X5_VUwRCCL1O1s/s640/gitlab-aws-s3-gcp-cloud-storage.jpg" title="Gitlab CICD and Amazon s3 and Google cloud-storage" width="640" /></a></div>
Gitlab has a generous free tier for CICD called "Gitlab Pipelines", that can be used to store build artifacts (or anything) in AWS S3 and Google Cloud Storage for free.<br />
<br />
<b>Grab the code here: <a href="https://github.com/sjmach/gitlabTocloud" target="_blank">GitlabToCloud</a>.</b><br />
<a name='more'></a><br />
<h3 style="text-align: left;">
<b>How to use Gitlab to store code artifacts like jars or zip files?</b></h3>
<ol style="text-align: left;">
<li>You will need a Gitlab account. You will also need an AWS account that has suitable access keys, (Secret key and Access key )to write to a bucket in AWS S3. </li>
<li>Similarly we also need to have proper <a href="https://cloud.google.com/iam/docs/understanding-service-accounts" target="_blank">service accounts</a> for writing data in a bucket for Google Cloud.</li>
<li>You will also need to setup <a href="https://gitlab.com/help/ci/variables/README#variables" target="_blank">Gitlab environment variables</a>. The variables are as follows:</li>
<ul>
<li>$AWS_ACCESS - AWS access key</li>
<li>$AWS_SECRET - AWS secret key </li>
<li> $DAYS - Set it to <b>1 days</b></li>
<li><b> </b>$GCP_PROJECT_ID - The <a href="https://support.google.com/googleapi/answer/7014113?hl=en" target="_blank">Google Project id</a></li>
<li>$GCP_SERVICE_KEY - The GCP service account created in step 2 above. Just copy all the file contents </li>
</ul>
</ol>
</div>
<br />
<b>Grab the code here: <a href="https://github.com/sjmach/gitlabTocloud" target="_blank">GitlabToCloud</a>.</b><br />
<br />
<br />
As you can see, we are using the Google Cloud image as it has python and gsutils already installed. We are installing aws-cli using pip so that we can easily copy the required files. All the files are deleted for security reasons after execution.<br />
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-22917224155801685432020-02-06T12:04:00.001+05:302020-02-17T18:18:12.393+05:30Using AWS lambda as a Proxy for any service<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-krDxH7m4bBk/XjQmcgCWUNI/AAAAAAAAD_Q/0whQc9xVw1Aypp13_kjRwxdh-IOPkpTZQCLcBGAsYHQ/s1600/aws-lambda.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="AWS Lambda" border="0" data-original-height="276" data-original-width="951" height="185" src="https://1.bp.blogspot.com/-krDxH7m4bBk/XjQmcgCWUNI/AAAAAAAAD_Q/0whQc9xVw1Aypp13_kjRwxdh-IOPkpTZQCLcBGAsYHQ/s640/aws-lambda.png" title="AWS Lambda" width="640" /></a></div>
<br />
<br />
<b>Amazon Web Services</b> has a generous free tier for Lambda which involves 1 million free invocations.<br />
<br />
With the release of HTTP API for API Gateway, you can use Lambda as a proxy for any service.<br />
<br />
The source code is available here -> <a href="https://github.com/sjmach/aws-lambda-proxy" target="_blank">AWS Lambda Proxy using Nodejs</a><br />
<br />
<a name='more'></a><h3>
<b>Why would you use Lambda as a Proxy?</b></h3>
<ol style="text-align: left;">
<li><a href="https://d1.awsstatic.com/whitepapers/Overview-AWS-Lambda-Security.pdf" target="_blank"><b>Security</b></a> - We don't want to expose the API end-point directly to the internet</li>
<li><b>Resilience</b> - If the external service goes down, we can use lambda to re-direct to an another instance of the API.</li>
</ol>
<h3>
<b>How to use AWS Lambda as a Proxy?</b></h3>
<ol>
</ol>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://res.cloudinary.com/tools/image/upload/v1580219060/blogger-articles/aws-lambda-proxy-architecture.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="aws-lambda-proxy" border="0" data-original-height="351" data-original-width="1400" height="280" src="https://res.cloudinary.com/tools/image/upload/v1580219060/blogger-articles/aws-lambda-proxy-architecture.png" title="AWS lambda proxy Architecture" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">AWS Lambda Proxy Architecture</td></tr>
</tbody></table>
<br />
<ul>
</ul>
<ol style="text-align: left;">
<li> You start by creating a new lambda function (we will call it the <b>proxyJS</b>). This will be the end-point where user submits the form. <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuiSa22uYACBG4SoCaj1fFg0sd-hCWpF5jQIf_8ig9GPoAx9Cis4oMuSFbg_7cec22JCHJy2QH6clSx5K2r6pOP6UDZ6AykFuf88z-H5ZsBQzqBDuBdDPm7hHRuPDDgDSz7ZLewTGUpo4/s1600/aws-lambda-trigger-api-gateway.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="api-gateway-trigger-aws-lambda" border="0" data-original-height="1452" data-original-width="1594" height="363" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuiSa22uYACBG4SoCaj1fFg0sd-hCWpF5jQIf_8ig9GPoAx9Cis4oMuSFbg_7cec22JCHJy2QH6clSx5K2r6pOP6UDZ6AykFuf88z-H5ZsBQzqBDuBdDPm7hHRuPDDgDSz7ZLewTGUpo4/s400/aws-lambda-trigger-api-gateway.png" title="API Gateway trigger for AWS Lambda" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">API Gateway Trigger for Proxy Lambda (Click to enlarge)</td></tr>
</tbody></table>
</li>
<li> Now we can call any external end-point. But in order to de-couple our architecture, we will use an AWS SNS topic that will get data from the Proxy lambda.
<br />
</li>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijtw5FPRwGtA4-M_dFr3uIr_KFuioztkq1Ike_LHm2Lyx0m7eBfeyUw9izXFkR8XgQVUjJV82K5LPUNsrS6wPLFKDRrz46RLwep9gSOZEhAchnV3RqtLXbiJQQvl2P9eZL9mOuLHbrhrw/s1600/aws-lambda-sns-trigger.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="sns-trigger-aws-lambda" border="0" data-original-height="642" data-original-width="1448" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijtw5FPRwGtA4-M_dFr3uIr_KFuioztkq1Ike_LHm2Lyx0m7eBfeyUw9izXFkR8XgQVUjJV82K5LPUNsrS6wPLFKDRrz46RLwep9gSOZEhAchnV3RqtLXbiJQQvl2P9eZL9mOuLHbrhrw/s400/aws-lambda-sns-trigger.png" title="sns-trigger-aws-lambda" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SNS Trigger for AWS Lambda</td></tr>
</tbody></table>
<br />
<script async="" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<br />
<ins class="adsbygoogle" data-ad-client="ca-pub-8834582001396641" data-ad-format="fluid" data-ad-layout-key="-g0-11-1t-79+uo" data-ad-slot="8007804229" style="display: block;"></ins><script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
<br />
<li>This topic will be subscribed by another Lambda function called <b>externalJS</b> that will call an external service with the topic data</li>
<li>In the above architecture, we are calling an external Google Cloud HTTP function using Nodejs using the above lambda</li>
</ol>
<br />
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-58790769071455970832018-08-01T22:20:00.002+05:302023-11-16T17:45:17.577+05:30Getting Started with Fortio for Load testing<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0fEPVScDfSK7FmIivrP7NwjiQtnFyxTekcH6zkvftpdCpwvnS4seT9qr0fMnAahOP9XiJ7PMJXFmHGlP_e6BHp9o4hjZ5Ebvvz2M_NdjldhoWV5fF4vL0N5YEbIZ2a1jPS75BEddAeno/s1600/fortio.webp" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Fortio Load testing" border="0" data-original-height="150" data-original-width="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0fEPVScDfSK7FmIivrP7NwjiQtnFyxTekcH6zkvftpdCpwvnS4seT9qr0fMnAahOP9XiJ7PMJXFmHGlP_e6BHp9o4hjZ5Ebvvz2M_NdjldhoWV5fF4vL0N5YEbIZ2a1jPS75BEddAeno/s1600/fortio.webp" title="Fortio - Load Testing" /></a></div>
<br />
<br />
We look at <a href="http://bit.ly/2n3H31r">Fortio</a>, which is a powerful load testing tool which is free and powered by Google's Go language.<br />
<br />
It is a rightful successor to Vegeta which is favourite among Go developers.<br />
<br />
<br />
<a name='more'></a><br />
<b>Updated : 16 November 2023</b><br />
</div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"></div><div dir="ltr" style="text-align: left;" trbidi="on"><br />
<h3 style="text-align: left;">
Installing Fortio</h3>
<ol style="background-color: white; box-sizing: border-box; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em;">
<li style="box-sizing: border-box;"><a href="https://golang.org/doc/install" rel="nofollow" style="background-color: transparent; box-sizing: border-box; color: #0366d6; text-decoration-line: none;">Install go</a> (golang 1.8 or later)</li>
<li style="box-sizing: border-box; margin-top: 0.25em;"><code style="background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em;">go get istio.io/fortio</code></li>
<li style="box-sizing: border-box; margin-top: 0.25em;">you can now run <code style="background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em;">fortio</code> (from your gopath bin/ directory)</li>
</ol>
<h3 style="text-align: left;"><b>How to run a load test using Fortio?</b></h3><div style="text-align: left;" trbidi="on"><b> </b><code style="background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em;">fortio load -qps 100 -t 30s http://example.com/api</code></div> </div><div dir="ltr" style="text-align: left;" trbidi="on">This command will perform a load test at 100 queries per second for 30 seconds against the specified URL (http://example.com/api). You can adjust the options (-qps for queries per second, -t for duration) based on your requirements.</div><div dir="ltr" style="text-align: left;" trbidi="on"> </div><div dir="ltr" style="text-align: left;" trbidi="on"><h3 style="text-align: left;">Docker </h3></div><div dir="ltr" style="text-align: left;" trbidi="on"> The following docker commands are useful when working with Fortio<br /></div><div dir="ltr" style="text-align: left;" trbidi="on"> </div><div style="text-align: left;" trbidi="on"><b> </b><code style="background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em;">docker run -p 8080:8080 -p 8079:8079 fortio/fortio server & # For the server</code></div><div style="text-align: left;" trbidi="on"><b> </b></div><div style="text-align: left;" trbidi="on"><b> </b>This runs <b>Fortio</b> in GUI mode (this open a web interface at http://localhost:8080/fortio) </div><div style="text-align: left;" trbidi="on"><b> </b><br /><br /><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBeeg8m5jV4Lhr7mDljXtsYuVzW2qaQQL31bDKbqagmjBUKKq1NOSNcAhVpv9F-VNK0PnOn-BhPDjCApcsk-M9wUNtMrTkZu319olwQQlpN9PSn4afghWylyGXUSR8kP97lwDAgsOeqiI/s1600/fortio-web-interface.png" style="margin-left: 1em; margin-right: 1em;"><img alt="fortio-load-testing-web-interface" border="0" data-original-height="478" data-original-width="872" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBeeg8m5jV4Lhr7mDljXtsYuVzW2qaQQL31bDKbqagmjBUKKq1NOSNcAhVpv9F-VNK0PnOn-BhPDjCApcsk-M9wUNtMrTkZu319olwQQlpN9PSn4afghWylyGXUSR8kP97lwDAgsOeqiI/s640/fortio-web-interface.png" title="fortio-load-testing-web-interface" width="640" /></a></div>
<br />As you can see, you can specify the percentiles for reporting, the TPS and the duration using the web interface. However, you are only supposed to use the GUI mode for developing your scripts<br /></div><div style="text-align: left;" trbidi="on"> </div><div style="text-align: left;" trbidi="on"><div style="text-align: left;" trbidi="on"><b> </b><code style="background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13.6px; margin: 0px; padding: 0.2em 0.4em;">docker run fortio/fortio load http://www.google.com/ # For a test run</code></div> </div><div style="text-align: left;" trbidi="on"> This command runs fortio without the GUI mode and is recommended for a test</div><div style="text-align: left;" trbidi="on"><br /></div><div style="text-align: left;" trbidi="on">The command-line gives you more options but it is not as powerful as a
Apache JMeter or Gatling . It does not support scenario based load
testing<br />
<br />
<b>Things I like:</b><br />
<br />
<ol style="text-align: left;"><li>A simple web interface</li><li>Ability to share report and graphs</li></ol>
<br />
<ins class="adsbygoogle" data-ad-client="ca-pub-8834582001396641" data-ad-format="fluid" data-ad-layout-key="-g0-11-1t-79+uo" data-ad-slot="8007804229" style="display: block; max-width: 0px;"></ins>
<b>Things I don't like:</b><br />
<br />
<ol style="text-align: left;"><li>No support for scripts</li><li>No support for scenario bases load testing</li></ol>
<br />
Fortio is best suited for load testing where developers want to test
their code locally on their desktop computers. It can also be used for
simulating spikes.<br />
</div>sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-73133473427182768882018-03-24T00:50:00.000+05:302018-03-24T00:57:58.421+05:30New User SignUp with Welcome Email using Firebase FireStore, Cloud Functions and Mailgun<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-D0UFOvl0xRw/WrVKgsjK6pI/AAAAAAAAD4M/7dNt9P_aNcQvEOTc3Lv6t2tXBSfN1AvRACLcBGAs/s1600/cloud-firestore.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="cloud-firestore" border="0" data-original-height="300" data-original-width="728" height="81" src="https://1.bp.blogspot.com/-D0UFOvl0xRw/WrVKgsjK6pI/AAAAAAAAD4M/7dNt9P_aNcQvEOTc3Lv6t2tXBSfN1AvRACLcBGAs/s200/cloud-firestore.png" title="Cloud Firestore to save user details" width="200" /></a></div>
<br />
Cloud FireStore and Cloud Functions can be easily used to save user details when a new user creates an account. An email can also be sent easily using an external service like Mailgun.<br />
<br />
<br />
<a name='more'></a><br />
<br />
The basic idea is as follows:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-RL6erzg_Spc/WrVQb3BQvmI/AAAAAAAAD4c/QYt7cjlTq-sDryK3lvfwh5z3GUqK1RcBACLcBGAs/s1600/user-signup-welcome-email-firebase.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="311" data-original-width="709" height="280" src="https://4.bp.blogspot.com/-RL6erzg_Spc/WrVQb3BQvmI/AAAAAAAAD4c/QYt7cjlTq-sDryK3lvfwh5z3GUqK1RcBACLcBGAs/s640/user-signup-welcome-email-firebase.png" width="640" /></a></div>
<br />
<br />
<b>1. User Signup and entry in Cloud FireStore</b><br />
<br />
<script src="https://gist.github.com/sjmach/3e97dc7b775709127a5911d130b7e525.js"></script>
<br />
The above code is triggered when a new user signs up for the first time. It should be triggered only when the Firebase Auth is successful.<br />
<br />
In the above code snippet, id is nothing but the unique id returned by Firebase Auth. The field "name" is entered by the user during signup.<br />
<br />
<br />
<b>2. Cloud Function to trigger Email</b><br />
<br />
<br />
<script src="https://gist.github.com/sjmach/c7c328f958e7f61d405c954bf32d33a1.js"></script>
<br />
<br />
It is important to note that we need to have proper Mailgun API credentials. Also mailgun.js should also be installed in the directory of the cloud functions.<br />
<br />
The above code works for all types of login, but the user should have a valid email id in the Cloud FireStore.<br />
<br />sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-9565709355481457462017-07-25T22:21:00.000+05:302017-09-21T10:10:49.669+05:30Should you buy a FireTV or a Chromecast?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSv0sbt2dffe-EjOgdU0z2v5-ehjb4ei0Sp2-CXuWMiaUTfkT7M0Zc5kl1lRRxHLoUh8c8Qpm1VXVIsZGFXMmxq_SW_BUJmQMzDD9cbTGeGd4v2dsBzmeXj9wYRAh0ufYQGTi9xlqDTcQ/s1600/amazon-firetv-versus-google-chromecast.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Firetv-versus-chromecast" border="0" data-original-height="844" data-original-width="1500" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSv0sbt2dffe-EjOgdU0z2v5-ehjb4ei0Sp2-CXuWMiaUTfkT7M0Zc5kl1lRRxHLoUh8c8Qpm1VXVIsZGFXMmxq_SW_BUJmQMzDD9cbTGeGd4v2dsBzmeXj9wYRAh0ufYQGTi9xlqDTcQ/s200/amazon-firetv-versus-google-chromecast.jpg" title="Firetv-versus-chromecast" width="200" /></a></div>
<br />
<br />
Amazon FireTV 2 and Google Chromecast 2 are one of the best living room devices available. (other than Roku and Apple TV).<br />
<br />
So which one should you buy?<br />
<br />
<br />
<a name='more'></a><br />
<h3 style="text-align: left;">
<b>The Price</b></h3>
Google Chromecast 2 costs $35.00 dollars Amazon Fire TV 2 costs about $39.99 dollars. Google Chromecast is the clear winner here. However, on special days like Amazon Prime Days you can get a FireTV 2 for about $20 dollars.<br />
<br />
<h3 style="text-align: left;">
<b>The Apps and Software</b></h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIJVdVoOdPC1fuKakBtdm43mEfAZNaCpcM1EMWa0fM1p1tZOFmfjzZS0sLc5oHe6lqP4Ojf3wZadtDwJdH2UlRvaJqvkM5Ib0ilS94zvPUfwm7Ur9GjZvshkYSfbV6g8mrdMw4VEAzhIc/s1600/google-home-app.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="google-home-android-app" border="0" data-original-height="1600" data-original-width="900" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIJVdVoOdPC1fuKakBtdm43mEfAZNaCpcM1EMWa0fM1p1tZOFmfjzZS0sLc5oHe6lqP4Ojf3wZadtDwJdH2UlRvaJqvkM5Ib0ilS94zvPUfwm7Ur9GjZvshkYSfbV6g8mrdMw4VEAzhIc/s320/google-home-app.png" title="Google Home Android app" width="180" /></a></div>
<br />
<br />
The Google Home App lets you configure your Chromecast. It does nothing more. The Amazon FireTV app lets you control your FireTV (like a remote).<br />
<br />
In terms of easy of use Google Chromecast is the clear winner hands down. You can cast your videos on YouTube or on Netflix using a cast button. All you need is an Android device or an iOS device with apps that support casting like YouTube.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwD0jg4BINBXZx6nl1JX6HvxNqshxhY7BUzOkZuyaqYbe2jiLkJEQQLc09MYoUAtzBqMvYIIf8BSuQWvnCgpcIozJ5looPV9MP6c6xe-yQZdAGEm4aB0PFVzfOpBs26TvqfpiBcOFeTX4/s1600/amazon-firetv-screenshot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Firetv-screenshot" border="0" data-original-height="903" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwD0jg4BINBXZx6nl1JX6HvxNqshxhY7BUzOkZuyaqYbe2jiLkJEQQLc09MYoUAtzBqMvYIIf8BSuQWvnCgpcIozJ5looPV9MP6c6xe-yQZdAGEm4aB0PFVzfOpBs26TvqfpiBcOFeTX4/s320/amazon-firetv-screenshot.jpg" title="Firetv-screenshot" width="320" /></a></div>
<br />
<br />
FireTV targets people who prefer the native TV experience. You can install new apps and also side-load additional android apps (install apps not available in Amazon FireTV Appstore).<br />
<br />
The clear winner in terms of features is FireTV. You can also use your TV remote to control FireTV.<br />
<br />
<h3 style="text-align: left;">
Verdict</h3>
Google Chromecast makes total sense if you just want to cast casual videos and value simplicity. Amazon FireTV gives you a holistic TV experience that is totally worth the price given you buy it on Amazon Prime day Sale.<br />
<br />
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-53956374920984685972017-07-05T10:06:00.002+05:302017-07-05T10:08:08.603+05:30How to find your lost or misplaced Android device?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKT9hBoFfYuQqpjkIfngrMBw4l5HIXSioo-3DRveFrqednrmAcE05YGosLBtfserzqnbdQhi50aoSRIYbU-i3DkRuLtlYMMDNmH2_B_U4C8upbdroObfonm1HxUQewJaJJDZ8iPB3GwGI/s1600/find-my-device-android.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Find My device app Logo" border="0" data-original-height="300" data-original-width="300" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKT9hBoFfYuQqpjkIfngrMBw4l5HIXSioo-3DRveFrqednrmAcE05YGosLBtfserzqnbdQhi50aoSRIYbU-i3DkRuLtlYMMDNmH2_B_U4C8upbdroObfonm1HxUQewJaJJDZ8iPB3GwGI/s200/find-my-device-android.png" title="Find My device app Logo" width="150" /></a></div>
<br />
<br />
<br />
Google's <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.adm&hl=en&utm_source=www.sundeepmachado.com" target="_blank">Find My device</a> is a free Android app that helps users to locate a missing android device.<br />
<br />
You just need to install the app and then you can locate your device using your Google account.<br />
<br />
<br />
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8sIKNwnIAC5PrgLwGJOFYGSM7jhmz_fm9beO8hGiL11q1mDpBt6d2TQr5315f5uix_edFJRfhrywRZ5y0dpD9LL6plFzUT7yWITfoYYpewP6lFlz0C7vKDcPYvFxHNkmbCxcrt410K44/s1600/find-my-device-screenshot.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Find my Device Android app" border="0" data-original-height="900" data-original-width="506" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8sIKNwnIAC5PrgLwGJOFYGSM7jhmz_fm9beO8hGiL11q1mDpBt6d2TQr5315f5uix_edFJRfhrywRZ5y0dpD9LL6plFzUT7yWITfoYYpewP6lFlz0C7vKDcPYvFxHNkmbCxcrt410K44/s400/find-my-device-screenshot.webp" title="Find my Device Android app" width="223" /></a></div>
<div>
<br /></div>
<div>
<h3 style="text-align: left;">
<b>Steps to find your missing Android device:</b></h3>
</div>
<div>
<ol style="text-align: left;">
<li>Install the <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.adm&hl=en&utm_source=www.sundeepmachado.com" target="_blank">Find My Device app</a> on your Android device (it is very important as the app helps in locating the device)</li>
<li>Visit the <a href="https://myaccount.google.com/find-your-phone" target="_blank">Find My Phone website</a>, you will now see the list of devices as below after you log in to your Google account:<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYzTncW2lLd3z21oDrZlKyBseSgs91fhCv60OKnajK-e37l96J_S9VarLlT5euy0hhynysdnx9tXMj1fma1ELi87SZFTs7Cr1YORAoo1rWRTP4sQ47DpwSe_TjwpYH14MEfhncAl0Ll8M/s1600/list-of-android-devices-find-my-device.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="List of Devices on Find my device " border="0" data-original-height="384" data-original-width="1388" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYzTncW2lLd3z21oDrZlKyBseSgs91fhCv60OKnajK-e37l96J_S9VarLlT5euy0hhynysdnx9tXMj1fma1ELi87SZFTs7Cr1YORAoo1rWRTP4sQ47DpwSe_TjwpYH14MEfhncAl0Ll8M/s400/list-of-android-devices-find-my-device.png" title="List of Devices on Find my device " width="400" /></a></div>
</li>
<li>Click on the device you want to locate.</li>
</ol>
<div>
<h3 style="text-align: left;">
<b>Additional Options:</b></h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCQVnwHgMonCNbGHH-0Nx2n5QNQiBA1GdK_A08ojQJ2GCZRqtLVOaZHunRUzyTJXxOrEf2fbXhJ2z3MX9slNraf-tg14BYciRWqi8zsnhLCCEf1aoMcal2r_b_G-V7w79LdZMECcO-Bk/s1600/find-my-phone-website-options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Find my Phone website" border="0" data-original-height="1265" data-original-width="1344" height="375" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCQVnwHgMonCNbGHH-0Nx2n5QNQiBA1GdK_A08ojQJ2GCZRqtLVOaZHunRUzyTJXxOrEf2fbXhJ2z3MX9slNraf-tg14BYciRWqi8zsnhLCCEf1aoMcal2r_b_G-V7w79LdZMECcO-Bk/s400/find-my-phone-website-options.png" title="Find my Phone website" width="400" /></a></div>
<br />
You can have additional options after you locate your device like locking the device, erasing all data etc. as seen above.<br />
<br />
<br /></div>
</div>
<div>
<br /></div>
</div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-44035988673440668282017-05-21T11:14:00.000+05:302017-05-21T11:14:15.082+05:30Get free 1000 email accounts for your domain<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi89AbgjcX5eCWUo9lNqwmQVuVXZecocUKfwkFiszASolVX0IstbHmfyJsIa3i4egx8cuyVytQRJNL84KHATYllXsk8ye5dHMKeiE7ayx8T3VKGyBe0WbgxEWVXBpw1KkX8fdc8DT7_PJM/s1600/yandex-mail-for-domains.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Yandex Mail for Domains" border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi89AbgjcX5eCWUo9lNqwmQVuVXZecocUKfwkFiszASolVX0IstbHmfyJsIa3i4egx8cuyVytQRJNL84KHATYllXsk8ye5dHMKeiE7ayx8T3VKGyBe0WbgxEWVXBpw1KkX8fdc8DT7_PJM/s200/yandex-mail-for-domains.jpg" title="Yandex Mail for Domains" width="200" /></a></div>
<br />
<br />
<a href="https://domain.yandex.com/" target="_blank">Yandex.Mail for Domains</a> is a free service provided by Yandex. After verifying your domain name ownership, you will get 1000 email accounts with 10 GB space for free.<br />
<br />
<br />
<br />
<a name='more'></a><br />
<br />
<b>Steps to get free email accounts via Yandex.Mail for Domains</b><br />
<br />
<ul style="text-align: left;">
<li>Create a Yandex account</li>
<li>Verifying your domain ownership</li>
</ul>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWz42nw5sdeUQB6D0e-ji0Yq7rqr3jnPHhAKBZORkuMGmtfcW8lctoHCXUCUV3Xk6FFrZFlrrkcrhy8J7LSb1nBMrRM5Mm-6LZSVJeUyqEZmkxQMQebuRhgDgdvaMp0bkqmm4TAfnhO3k/s1600/yandex-mail-sreenshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Yandex mail for domains" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWz42nw5sdeUQB6D0e-ji0Yq7rqr3jnPHhAKBZORkuMGmtfcW8lctoHCXUCUV3Xk6FFrZFlrrkcrhy8J7LSb1nBMrRM5Mm-6LZSVJeUyqEZmkxQMQebuRhgDgdvaMp0bkqmm4TAfnhO3k/s400/yandex-mail-sreenshot.png" title="Yandex mail for domains" width="360" /></a></div>
<br />
<br />
In order to verify the domain you need to add the following domain Nameservers:<br />
<br />
<ul style="text-align: left;">
<li>Primary DNS server — “dns1.yandex.net.”</li>
<li>Secondary DNS server — “dns2.yandex.net.”</li>
</ul>
<br />
<div>
After verification, you can create upto 1000 email accounts. You can also use the optional Domain Management services too.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-7193723566206904052017-05-16T20:00:00.000+05:302017-05-16T22:06:29.634+05:30How to upgrade your website or blog from http to https for free<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaW250UEXhA3SGXIm-C1yWFMghYhAFdGPRqTAOmCRxEmaVxjy-3HwNO9n_7j3TOl_Fo5dM7sqoEvaMq4-KQkR323FMYCwuM-MD1XtAjnjHw4PYujyJaApab_cUiUEFKEc6STneg9sJYZw/s1600/cloudfare-logo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Cloudfare SSL" border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaW250UEXhA3SGXIm-C1yWFMghYhAFdGPRqTAOmCRxEmaVxjy-3HwNO9n_7j3TOl_Fo5dM7sqoEvaMq4-KQkR323FMYCwuM-MD1XtAjnjHw4PYujyJaApab_cUiUEFKEc6STneg9sJYZw/s200/cloudfare-logo.jpg" title="Cloudfare SSL" width="150" /></a></div>
<br />
<br />
Cloudfare offers a<a href="https://www.cloudflare.com/ssl/" target="_blank"> free SSL certificate </a> that enables a website publisher to host content using the https protocol on a website.<br />
<br />
It also allows a blogger blog which has a custom domain to upgrade to https.<br />
<a name='more'></a><br />
<b>What are the advantages of https?</b><br />
<br />
<ol style="text-align: left;">
<li>Websites are more secure</li>
<li>Google assigns a higher ranking to https websites</li>
<li>Websites are faster</li>
</ol>
<br />
<br />
<b>How to install Cloudfare certificates?</b><br />
In order to install the Cloudfare SSL certificate so that all content is served via https, a website owner needs to change the DNS nameservers to that provided by Cloudfare as below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1z-L4lOxeIFQff-TQPHmz-nUjYLzOJkEG_rfUKiCiqTk2dS4Q55vVnpRlDn3d1MpikstzHUpehd0I5Edo_hXnIVkxOR59-ii0j9nRRB2NcZ2-X85DM-m1feeLAY2i3fiMC8vrpFQi3qI/s1600/cloudfare-dns-entries.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Cloudfare NameServers" border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1z-L4lOxeIFQff-TQPHmz-nUjYLzOJkEG_rfUKiCiqTk2dS4Q55vVnpRlDn3d1MpikstzHUpehd0I5Edo_hXnIVkxOR59-ii0j9nRRB2NcZ2-X85DM-m1feeLAY2i3fiMC8vrpFQi3qI/s640/cloudfare-dns-entries.png" title="Cloudfare NameServers" width="640" /></a></div>
<br />
The best thing is that existing MX, A, TXT records are backed up and nothing gets deleted.<br />
<br />
You then need to enable SSL in the Crypto tab in Cloudflare console:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidubu-ZRyBkK24RDaeJBwFPCQajOmH-EEIoSaiGtHJOvG25PWtEknr0kE8fyU6CN9EwYsRCkvODjpT1OOf1V32bI5PUiEnZUWPONTVrMNlCo09j2wT9G0ET6v-3uDD157qa7Uv_W_svYg/s1600/cloudflare-ssl-option.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Enable SSL in Cloudflare" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidubu-ZRyBkK24RDaeJBwFPCQajOmH-EEIoSaiGtHJOvG25PWtEknr0kE8fyU6CN9EwYsRCkvODjpT1OOf1V32bI5PUiEnZUWPONTVrMNlCo09j2wT9G0ET6v-3uDD157qa7Uv_W_svYg/s400/cloudflare-ssl-option.png" title="Enable SSL in Cloudflare" width="301" /></a></div>
<br />
<br />
As soon as you enable this option, the website will be served via HTTPS protocol. Users will see a lock option in the address bar as below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgao2hNoGn9LtxJTYtLxcBRJt06_EdFSVet_ePDwgVbMODRnByM1N-ueH1pQJZxZzOnPmLBynIccCU42dfPmRnmdWxeA1FWXWwkP7RVLQG9Y1RdKldWJhtG-HrqZExVqgPOgNSIhnOJ5Tg/s1600/https-proof.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="https proof" border="0" height="59" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgao2hNoGn9LtxJTYtLxcBRJt06_EdFSVet_ePDwgVbMODRnByM1N-ueH1pQJZxZzOnPmLBynIccCU42dfPmRnmdWxeA1FWXWwkP7RVLQG9Y1RdKldWJhtG-HrqZExVqgPOgNSIhnOJ5Tg/s320/https-proof.png" title="https proof" width="320" /></a></div>
<br />
<br />
You can easily force all mixed content to be served via https using the below setting:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_8KS_tkdYKYbd5YJBZQtouaDxDLsjgBl0ymGckPOh8gUlcFyab_XEkRakKLucy30COyd7QejbLFdo77WWnvOfafRCK4DDYe86hWsJeVsqSz6wwNlwJRQga2Qm7RkEDe3GklXSk7zhwts/s1600/force-https-settings-cloudflare.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="force https setting" border="0" height="96" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_8KS_tkdYKYbd5YJBZQtouaDxDLsjgBl0ymGckPOh8gUlcFyab_XEkRakKLucy30COyd7QejbLFdo77WWnvOfafRCK4DDYe86hWsJeVsqSz6wwNlwJRQga2Qm7RkEDe3GklXSk7zhwts/s400/force-https-settings-cloudflare.png" title="force https setting" width="400" /></a></div>
<br />
The advantage is that if a website owner has uploaded an image which was served by http and is now available on https, Cloudflare detects this and automatically serves such content via https.<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-73955465504862165762017-05-08T19:37:00.000+05:302017-05-08T19:37:56.353+05:30How to replay user actions on your website?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEnc2xDUwBg0DZ2y731ghJcRez6gLNvbCMk_0zUj_-MeTG37DYgjHWP0xIeBzI9eUF93Ddz1XRxQaF5QBxgilSKexERcrqcOSIwQj-ScTuc8CTRCHfajy_1LL1mojAvzCy2K65rdsUkT4/s1600/yandex-metrica-session-replay-feature.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Yandex Metrica" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEnc2xDUwBg0DZ2y731ghJcRez6gLNvbCMk_0zUj_-MeTG37DYgjHWP0xIeBzI9eUF93Ddz1XRxQaF5QBxgilSKexERcrqcOSIwQj-ScTuc8CTRCHfajy_1LL1mojAvzCy2K65rdsUkT4/s200/yandex-metrica-session-replay-feature.png" title="Yandex Metrica" width="200" /></a></div>
<br />
<br />
<br />
<a href="https://metrica.yandex.com/" target="_blank">Yandex Metrica</a> is a free Analytics service similar to Google Analytics.<br />
<br />
It has a cool user session replay feature that allows to see how users are using a particular website. It basically records users sessions and then replays it.<br />
<br />
<br />
<a name='more'></a><br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaWvkvX9wNjvgSRJZS0Dvi0hQKQX2THq5PNjd5AzOtRM9f3u8JNXYnKSlfxKdOOC47UJ30SNcZUQjJ9mQqVS05tQ9EvDl90pUk-TcP3GEd4NDYXd7UE-wMtfBiooRo5VOB1T826jRtKoE/s1600/session-replay-feature-yandex-metrica.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Session Replay feature Yandex Metrica" border="0" height="313" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaWvkvX9wNjvgSRJZS0Dvi0hQKQX2THq5PNjd5AzOtRM9f3u8JNXYnKSlfxKdOOC47UJ30SNcZUQjJ9mQqVS05tQ9EvDl90pUk-TcP3GEd4NDYXd7UE-wMtfBiooRo5VOB1T826jRtKoE/s400/session-replay-feature-yandex-metrica.PNG" title="Session Replay feature Yandex Metrica" width="400" /></a></div>
<br />
It gives a detail overview of your users and the duration of each session. To replay you just need to hit the play button.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUY9EyICfHtWfAChCiWOC4rT56vF_ZpFWD2ChDDs3TQL5q6fN6AKoPIjGWgaJRoxPOsxk4r8J2iTTkZoaN6qwwqkHWz9NfvXJ89knXjPf9NY9-IqEZZf3PE5RGeHci-TlfLaebiETYboU/s1600/advance-query-options-reporting.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="advance reporting options" border="0" height="370" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUY9EyICfHtWfAChCiWOC4rT56vF_ZpFWD2ChDDs3TQL5q6fN6AKoPIjGWgaJRoxPOsxk4r8J2iTTkZoaN6qwwqkHWz9NfvXJ89knXjPf9NY9-IqEZZf3PE5RGeHci-TlfLaebiETYboU/s400/advance-query-options-reporting.PNG" title="advance reporting options" width="400" /></a></div>
<br />
Metrica also supports advance reporting options as you can filter users based on particular criteria. <i>Example: You can filter users visiting the website using Chrome Browser and who are visiting from United States of America.</i><br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-22724294881366546092017-04-30T19:36:00.001+05:302017-04-30T19:36:45.376+05:30Opera VPN - Free VPN app for Android and iOS devices<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSuZigumnkkNfQzJQ5p4dyD9WbHojKSI8qv8MojwWYJ2vBpScYaOvvTlT0BX9zUbz-acVrYxwoub5di9vQMM8EACaldXq-GTRnv0Rp-vutQrGpfnWdxB3YsFGfyzF9_Fil4bM4-ryoCzE/s1600/opera-vpn.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Opera Vpn - Free Vpn app for your android and iOS device" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSuZigumnkkNfQzJQ5p4dyD9WbHojKSI8qv8MojwWYJ2vBpScYaOvvTlT0BX9zUbz-acVrYxwoub5di9vQMM8EACaldXq-GTRnv0Rp-vutQrGpfnWdxB3YsFGfyzF9_Fil4bM4-ryoCzE/s200/opera-vpn.png" title="Opera Vpn - Free Vpn app for your android and iOS device" width="188" /></a></div>
<br />
<br />
<br />
<a href="https://www.operavpn.com/" target="_blank">Opera VPN</a> is a free VPN by Opera for android and iOS devices.<br />
<br />
It has a lot of cool features that are not available in most commercial VPN service providers.<br />
<br />
<br />
<a name='more'></a><br /><br />
<br />
<br />
<b>What are the different features of Opera VPN?</b><br />
<b>1. Hide your IP address and get a different IP address from a particular country </b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTteNBBfd6MWahDImHhEMJrZvAwqJd-3LLabDfn3SdIYpsj2UZBE1PWgXcsFf2g8kbowqpSjOrK-1FtQkp3gBvPOoTOWGBs5vlD5kxN13PqOFupfOLIkmLpDtWjPa0Kfeo6l9WU-D7qgQ/s1600/opera-vpn-browse-from-us-canada-for-free.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Browse from US and Canada" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTteNBBfd6MWahDImHhEMJrZvAwqJd-3LLabDfn3SdIYpsj2UZBE1PWgXcsFf2g8kbowqpSjOrK-1FtQkp3gBvPOoTOWGBs5vlD5kxN13PqOFupfOLIkmLpDtWjPa0Kfeo6l9WU-D7qgQ/s400/opera-vpn-browse-from-us-canada-for-free.png" title="Browse from US and Canada" width="225" /></a></div>
<br />
Opera VPN allows users to select a region particular region like United States and Canada.<br />
<br />
<b>2. Block irritating ads and trackers on websites</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOxctLUNF9QVD4zeJjN1qMpXV6OiLJulQLTJcgBHV_8ZRn3gvz3SC6Y5NYHSDBLrAu6Y_qCozZX9Zx-HydCmEo27Ba-904dqkxe2T3HYkUhONdHDiDY6hqHcUeyY50NLvQYq5hiU0WZps/s1600/opera-vpn-features.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Block ads and Trackers using Opera VPN" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOxctLUNF9QVD4zeJjN1qMpXV6OiLJulQLTJcgBHV_8ZRn3gvz3SC6Y5NYHSDBLrAu6Y_qCozZX9Zx-HydCmEo27Ba-904dqkxe2T3HYkUhONdHDiDY6hqHcUeyY50NLvQYq5hiU0WZps/s400/opera-vpn-features.jpg" title="Block ads and Trackers using Opera VPN" width="225" /></a></div>
Advertisers assign an advertising id to users and this helps them to <a href="http://www.sundeepmachado.com/2017/04/how-to-better-understand-visitors-using-google-analytics-user-explorer-feature.html" target="_blank">track user activity and know how they are using apps and website</a>.<br />
<b><br /></b>
<b>3. Test Wifi Settings</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWZ3Fwg7IboTVhy3_frZap4RIC_zh0WJTsFF70_cPCX5jxvPKNyVb73SlU2OjxgDyOh4kfjijkthRppshPTw94fqtMknPfhs15J62l3Vc6tCbQPeSl-_GwNK-wbF3oWUFxrJYdvzp0qA/s1600/test-vpn-settings-opera-vpn.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="test wifi settings opera vpn" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZWZ3Fwg7IboTVhy3_frZap4RIC_zh0WJTsFF70_cPCX5jxvPKNyVb73SlU2OjxgDyOh4kfjijkthRppshPTw94fqtMknPfhs15J62l3Vc6tCbQPeSl-_GwNK-wbF3oWUFxrJYdvzp0qA/s400/test-vpn-settings-opera-vpn.png" title="test wifi settings opera vpn" width="225" /></a></div>
<br />
Opera VPN can also test any wifi settings to check security loopholes .<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.comtag:blogger.com,1999:blog-6065001694786660108.post-48015686793056804682017-04-27T20:11:00.000+05:302017-04-27T20:11:01.117+05:30After Fake news, Facebook introduces Vivo fake ads on Instagram<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzU26zEBIVzI6Znoj4A-_R-5p-Tyl7ME22q1a0fqsDPJbQWPbAOs5E838h-ljHk_Fpzb4iCoQkBGw0vqArhcNH4xdyjgGqYJH-Fcfq_vRXdDsknuoige9HKEMApmjmRtQTaoG__QB-FjU/s1600/instagram-logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Instagram - Fake Ads" border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzU26zEBIVzI6Znoj4A-_R-5p-Tyl7ME22q1a0fqsDPJbQWPbAOs5E838h-ljHk_Fpzb4iCoQkBGw0vqArhcNH4xdyjgGqYJH-Fcfq_vRXdDsknuoige9HKEMApmjmRtQTaoG__QB-FjU/s200/instagram-logo.png" title="Instagram - Fake Ads" width="200" /></a></div>
<br />
Facebook has done it again.<br />
<br />
After fake news, Facebook has started showing fake ads on its Instagram service.<br />
<br />
<br />
<a name='more'></a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPbMi6O3H3513y3bMsm7Jaz4dn4byk5P2B0DDeMBkwaxnpBTZLDoNjbCEfTQ3djCJ3ms-uu7e5wBqwn1iNloeXseUE9k7S0Q1aeHROV-FSkX1Xh1XS0oXJG5peHH_eJtmcWK2YOFT3aKQ/s1600/fake-ads-instagram.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Fake Ads on Instagram" border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPbMi6O3H3513y3bMsm7Jaz4dn4byk5P2B0DDeMBkwaxnpBTZLDoNjbCEfTQ3djCJ3ms-uu7e5wBqwn1iNloeXseUE9k7S0Q1aeHROV-FSkX1Xh1XS0oXJG5peHH_eJtmcWK2YOFT3aKQ/s640/fake-ads-instagram.PNG" title="Fake Ads on Instagram" width="360" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
An iPhone 5s for Rs 499 is 7.78$. This advertisment is too good to be true. After clicking on the advertisement, the website opened was a similar to Amazon as seen below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJPS5euKyHryVa6F_NHPi2RFLEHJnRQBERKwLIC-QTD19iTEI9Gh8qyk-WW25zBMXrtplEMWEqeqqYaHTjx7s8OorS7GOXPFPuUiz-AO-dAaIXnb2FgMEoBD82kyxz2h1Bq1V4yJEMJKo/s1600/fake-amazon-website.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Fake amazon website" border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJPS5euKyHryVa6F_NHPi2RFLEHJnRQBERKwLIC-QTD19iTEI9Gh8qyk-WW25zBMXrtplEMWEqeqqYaHTjx7s8OorS7GOXPFPuUiz-AO-dAaIXnb2FgMEoBD82kyxz2h1Bq1V4yJEMJKo/s640/fake-amazon-website.PNG" title="Fake amazon website" width="360" /></a></div>
<br />
A domain lookup showed the real owner of the website as below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYmotVDLSysODlSZpk1KZN-7jHOh6F4Z54gjTVTntQTql1P_JCxjdx1gXgqRxDcWnzokBJIzNGd9xLiJ8QDwkLdQ1Lir478WX-OB-lSDbNKyijC1QhD1Rv13lK16ro3rR9Ap8SX-WeuVU/s1600/fake-ads-website-instagram-owner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Fake website owner in Instagram ads" border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYmotVDLSysODlSZpk1KZN-7jHOh6F4Z54gjTVTntQTql1P_JCxjdx1gXgqRxDcWnzokBJIzNGd9xLiJ8QDwkLdQ1Lir478WX-OB-lSDbNKyijC1QhD1Rv13lK16ro3rR9Ap8SX-WeuVU/s320/fake-ads-website-instagram-owner.png" title="Fake website owner in Instagram ads" width="313" /></a></div>
<br />
The advertiser has smartly masked the url with Vivo which is a mobile phone maker.sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.comtag:blogger.com,1999:blog-6065001694786660108.post-33130756003489376942017-04-26T23:00:00.001+05:302017-04-26T23:00:26.246+05:30Facebook chat bot allows anonymous people to ask and answer questions<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7WIA7F5A28MSpXiLlByB5eMswyEqaltGpge_UFp_zYsPC_DGOHPyomZ1DCGFexajlC6v0PlgPRKbxx5XHa5uCFdqtcU1JIxSqK22yegmsty4MT2JoxIr_5jockhoEdAw1YcBo7K1IEG4/s1600/give-or-take-facebook-chatbot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Facebook chatbot Give or take" border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7WIA7F5A28MSpXiLlByB5eMswyEqaltGpge_UFp_zYsPC_DGOHPyomZ1DCGFexajlC6v0PlgPRKbxx5XHa5uCFdqtcU1JIxSqK22yegmsty4MT2JoxIr_5jockhoEdAw1YcBo7K1IEG4/s200/give-or-take-facebook-chatbot.png" title="Facebook chatbot Give or take" width="150" /></a></div>
<br />
The Facebook messenger bot platform has a good number of useful bots.<br />
A new bot called <a href="https://www.facebook.com/GiveOrTakeChatbot/" target="_blank">Give or Take</a> allows users to ask and answer questions<br />
<br />
<br />
<br />
<br />
<a name='more'></a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMjm1lZIZafjnh-l4sTTKPMYAnRAkyrFvSsU0fkNPigI7vkfy1C8U6QQC-cY3SQcl75j5mChwmVUiuVIHkqkInbuDYOkFgAntZHC04eb5oZFwi4mZ9NSf5clU42TfBQQZw_UoVr1MSa8/s1600/facebook-chatbot-questions-answers.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Facebook chat bot Q&A" border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMjm1lZIZafjnh-l4sTTKPMYAnRAkyrFvSsU0fkNPigI7vkfy1C8U6QQC-cY3SQcl75j5mChwmVUiuVIHkqkInbuDYOkFgAntZHC04eb5oZFwi4mZ9NSf5clU42TfBQQZw_UoVr1MSa8/s640/facebook-chatbot-questions-answers.PNG" title="Facebook chat bot Q&A" width="360" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
This Facebook bot is very fast and very engaging. You need to install the facebook messenger app on your device for it to work on your phone. Once installed visit the bot at <a href="https://www.facebook.com/GiveOrTakeChatbot/" target="_blank">GiveOrTakeChatbot </a>.</div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.comtag:blogger.com,1999:blog-6065001694786660108.post-85499577681326928562017-04-26T05:30:00.000+05:302017-04-26T05:30:24.751+05:30How to run ad experiments using Google Adsense<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipboSIBNdxwc5tn6XSXfNjrAEyheK1oNNlur-DkZ-SoobgCl4A8Iu1ZU36ZLJU3iVQX31srTcF5DVfeb_eMxo2f6umjMBmMORiVMWg-WfY-k28SI0HyxH72kTtRPeRLkJReuEC5wAA7kA/s1600/Google-Adsense.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Google AdSense" border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipboSIBNdxwc5tn6XSXfNjrAEyheK1oNNlur-DkZ-SoobgCl4A8Iu1ZU36ZLJU3iVQX31srTcF5DVfeb_eMxo2f6umjMBmMORiVMWg-WfY-k28SI0HyxH72kTtRPeRLkJReuEC5wAA7kA/s320/Google-Adsense.png" title="Google AdSense" width="320" /></a></div>
Google Adsense allows content publishers to experiment with different ad formats and ad categories.<br />
<br />
<br />
You can find the Experiments feature under the <b>Optimisation</b> Tab.<br />
<br />
<a name='more'></a><br /><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-LlsfWgaCoNU/WP8TiJsiXdI/AAAAAAAAD0g/_igERKm9Rr4y1r0GjxxhGGEoKLlxe4z1ACK4B/s1600/google-adsense-experiment-types.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google AdSense experiment types" border="0" class="qqmlmvyuhmovizrhejxz" src="https://4.bp.blogspot.com/-LlsfWgaCoNU/WP8TiJsiXdI/AAAAAAAAD0g/_igERKm9Rr4y1r0GjxxhGGEoKLlxe4z1ACK4B/s400/google-adsense-experiment-types.png" title="Google AdSense experiment types" /></a></div>
<br />
There are two types of experiments:<br />
<ol>
<li><b>Ad unit settings </b>- This experiment allows the user to change the the ad type or ad style and see what works best. </li>
<li><b>Allow and block experiment </b>- This experiment allows the user to work with different categories and op-outs</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQNG0D00CmySALlS_J0JIAjfIf_dXGJCj9RsBSGfyttpFNv-WqNFVIgC1OMTAgLeAvXxJOk4xh_bzZH4fNB3tg2CR2rCq7nJFg1nIkkNjY3Vbi0sl16wQ73fu76NyXcvTK9WEmbnxSSW0/s1600/google-adsense-experiments-in-action.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google AdSense in action" border="0" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQNG0D00CmySALlS_J0JIAjfIf_dXGJCj9RsBSGfyttpFNv-WqNFVIgC1OMTAgLeAvXxJOk4xh_bzZH4fNB3tg2CR2rCq7nJFg1nIkkNjY3Vbi0sl16wQ73fu76NyXcvTK9WEmbnxSSW0/s640/google-adsense-experiments-in-action.png" title="Google AdSense in action" width="640" /></a></div>
<br />
<br />
The idea is to identify which ad formats are working for a particular website and how website owners can maximise their revenue.<br />
<br />
<br />
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-71017945075861304852017-04-24T21:32:00.000+05:302017-04-24T21:36:27.545+05:30Google Chrome to have new ad-blocking features soon<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP5uauSZ0luTb-tRGp5jWRuQK0l89-3qImNMIIXjEbdHUnFLCOVBmCamUHI7yxK0xdZ0jDVIEAOYdpfT4q-hkBLnmmNvFESC5t1CDXHgafOIwJR1Wdj7LJr4w18Z2cnKDugl8KQv4N4xQ/s1600/google-chrome.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img .="" alt="Google Chrome" border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP5uauSZ0luTb-tRGp5jWRuQK0l89-3qImNMIIXjEbdHUnFLCOVBmCamUHI7yxK0xdZ0jDVIEAOYdpfT4q-hkBLnmmNvFESC5t1CDXHgafOIwJR1Wdj7LJr4w18Z2cnKDugl8KQv4N4xQ/s200/google-chrome.png" title="Browser Stats" width="150" /></a></div>
<br />
<br />
<br />
Google Chrome is all set to introduce new ad-blocking features that will be enabled by default.<br />
<br />
<br />
<br />
<a name='more'></a><br /><br />
<br />
<br />
Google Chrome is the world's most used Web Browser as per <a href="https://www.w3schools.com/browsers/" target="_blank">W3Schools</a>. As a result it has monopoly in deciding what ads it wants to display to the users.<br />
<br />
The ad blocking market is growing at a tremendous space. About 15 % mobile users have ad-block software installed on their devices.<br />
<br />
<br />
<b>Adblock Plus </b>is the number one ad-blocker available to the users which helps <a href="http://www.sundeepmachado.com/2014/12/how-to-stop-annoying-youtube.html" target="_blank">users to block advertisements on websites like YouTube</a>. As a result companies like Google who own sites like YouTube end up losing a lot of money as users don't see ads. By introducing ad-blocking features, Google ensures that it can show ads on websites the company owns or deems fit.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA0Ki9mBCf9vPjb2_IkTRyLyhMT41yI1UNx1HNM-DPx5lxkCP3g5knnCeH7YZjowV5iJRYqYYYwF029GUrJIW7WvfN335YFwW_rpfFVp0ja8JsWDJEaO1BiyVSE3hVFL3T-0GuxlgQhCk/s1600/Google-Adsense-Logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google Adsense Logo" border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA0Ki9mBCf9vPjb2_IkTRyLyhMT41yI1UNx1HNM-DPx5lxkCP3g5knnCeH7YZjowV5iJRYqYYYwF029GUrJIW7WvfN335YFwW_rpfFVp0ja8JsWDJEaO1BiyVSE3hVFL3T-0GuxlgQhCk/s320/Google-Adsense-Logo.png" title="Google Adsense Logo" width="320" /></a></div>
<br />
<br />
<br />
Google also allows website owners to<a href="https://www.sundeepmachado.com/search/label/adsense" target="_blank"> earn money using its Google Adsense </a>program to which there is no fee.<br />
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-35293561437214936832017-04-23T10:20:00.001+05:302017-04-23T10:20:15.379+05:30Google Analytics Chrome plugins : How to use them?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFI8BOAl55YYZMAvfx_NLFLHloiy438JavxWJ8VCs7AGHlWlRvBzppliZmDh3HeK2Hu-ggV55Me6urQBaaijU-JJChYt-NeW2p0EX9kIfUcMeeDIgWIZ9IY6IctyApfiGeEHTrWrK9Joo/s1600/google-analytics.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Google Analytics" border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFI8BOAl55YYZMAvfx_NLFLHloiy438JavxWJ8VCs7AGHlWlRvBzppliZmDh3HeK2Hu-ggV55Me6urQBaaijU-JJChYt-NeW2p0EX9kIfUcMeeDIgWIZ9IY6IctyApfiGeEHTrWrK9Joo/s200/google-analytics.png" title="Google Analytics" width="150" /></a></div>
<br />
Google Analytics team has released two free Chrome Plugins:<br />
<br />
<ol style="text-align: left;">
<li><a href="https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna/related?hl=en" target="_blank">Google Analytics Debugger Chrome extension</a></li>
<li><a href="https://chrome.google.com/webstore/detail/page-analytics-by-google/fnbdnhhicmebfgdgglcdacdapkcihcoh?hl=en" target="_blank">Google Page Analytics Chrome Extension </a></li>
</ol>
<div>
<a name='more'></a><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-2TQZhJULLsLpMwTY0PDN86q_RICuKUiiR95saPDDZ4b1jPL2aWCrlu_P2qEs3GaCG5mR5xi39gwkJfYiblomNe641Fm4buZKRATYUU3HnJZT6DR5STYZc7sR3Gk1wjVOXU-VXF-qxbk/s1600/google-chrome-analytics-extensions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google Chrome Browser's Google Analytics extension" border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-2TQZhJULLsLpMwTY0PDN86q_RICuKUiiR95saPDDZ4b1jPL2aWCrlu_P2qEs3GaCG5mR5xi39gwkJfYiblomNe641Fm4buZKRATYUU3HnJZT6DR5STYZc7sR3Gk1wjVOXU-VXF-qxbk/s320/google-chrome-analytics-extensions.png" title="Google Chrome Browser's Google Analytics extension" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
As soon as you install the plugins, you will see them reside next to Google Chrome address bar.</div>
<div>
<br /></div>
<div style="text-align: left;">
<a href="https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna/related?hl=en" target="_blank">Google Analytics Debugger</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
This Google Analytics debugger plugin helps to debug whether Google Analytics is working correctly on a page.</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2vM0Q0tdq7pIXD30-clQ2atKBQ6V4QxMbNCArrM65Vd8djemeu7apNtK5cGFNxq0e3DYxEKl6jMSdT2pcBJ8cB69yqh8PPowh17_WrieleR45pnJdFk8-DcMxm-n6azMJYZrbXy65Gho/s1600/google-analytics-debugger-chrome-extension.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google Analytics debugger chrome extension" border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2vM0Q0tdq7pIXD30-clQ2atKBQ6V4QxMbNCArrM65Vd8djemeu7apNtK5cGFNxq0e3DYxEKl6jMSdT2pcBJ8cB69yqh8PPowh17_WrieleR45pnJdFk8-DcMxm-n6azMJYZrbXy65Gho/s640/google-analytics-debugger-chrome-extension.png" title="Google Analytics debugger chrome extension" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
You can easily debug a webpage by enabling the plugin and clicking on the console tab in Google Chrome.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<a href="https://chrome.google.com/webstore/detail/page-analytics-by-google/fnbdnhhicmebfgdgglcdacdapkcihcoh?hl=en" target="_blank">Google Page Analytics Chrome Extension </a></div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5pobnSAGI7PZsLndBUJq_cIx_Bae1yKpYxZ_igT78hdq1MFFKai4H9dY3Kba79iS5fCpNEM41aD_dN64b7MTGIRRdMMNMssG2TjXVPbnVj8eFHwKL8tal5VIuzqA6bk9P2i1jX0ldhbI/s1600/google-analytics-page-level-analytics-extension.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google Page Level Analytics Extesnion" border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5pobnSAGI7PZsLndBUJq_cIx_Bae1yKpYxZ_igT78hdq1MFFKai4H9dY3Kba79iS5fCpNEM41aD_dN64b7MTGIRRdMMNMssG2TjXVPbnVj8eFHwKL8tal5VIuzqA6bk9P2i1jX0ldhbI/s640/google-analytics-page-level-analytics-extension.png" title="Google Page Level Analytics Extesnion" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
This extension gives an overview how web site visitors are interacting with the website by visualising the data collected from Google Analytics.</div>
<div style="text-align: left;">
<br /></div>
</div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-74840927376865896102017-04-22T19:43:00.001+05:302017-04-22T19:43:50.395+05:30How to prevent your facebook account from getting hacked?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0WEVpvm_Ce6XK5kOHZ7EJ_0whBcAo-wlVkUPLdhx3GiFowlFzD1kXqNiEBkpL6y__UsgA800GlAL_cmZYbxUCMVBA5ii7rzI350tbLd7fo4xpqFXhYtO4BTTQ62-wFqEWFKEGHM8Iweo/s1600/secure-your-facebook-account.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Use facebook securely" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0WEVpvm_Ce6XK5kOHZ7EJ_0whBcAo-wlVkUPLdhx3GiFowlFzD1kXqNiEBkpL6y__UsgA800GlAL_cmZYbxUCMVBA5ii7rzI350tbLd7fo4xpqFXhYtO4BTTQ62-wFqEWFKEGHM8Iweo/s320/secure-your-facebook-account.jpg" title="Use facebook securely" width="200" /></a></div>
<br />
Facebook offers a lot of security features and options that help to protect your account.<br />
<br />
However, most users don't use these features and as a result, their accounts end up getting hacked.<br />
<br />
<br />
<br />
<br />
<a name='more'></a><br />
<br />
What are the different ways to secure your Facebook account?<br />
The different ways to secure your <a href="https://www.facebook.com/settings?tab=security&section=login_alerts&view" target="_blank">account using Facebook Security settings</a> are as follows:<br />
<br />
<b>1. Enable Login Alerts</b><br />
<br />
The login alerts feature notifies the user when and from where the Facebook account was accessed.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC0F-cGbCCXdXjb1bv-IfBOkvg-I9GAQAxaPgi4Mi3lPu8jRGlM8aGwSAfmcH6xcBP8Y3nGKCSvbWWcfchuZ1bE-zNUoL2pg8ERaerYu5w90xv-kMq9_Xe6LtVwPDsbmCbO08HS5J0pRY/s1600/facebook-login-alerts-settings.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Login alerts settings in facebook" border="0" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC0F-cGbCCXdXjb1bv-IfBOkvg-I9GAQAxaPgi4Mi3lPu8jRGlM8aGwSAfmcH6xcBP8Y3nGKCSvbWWcfchuZ1bE-zNUoL2pg8ERaerYu5w90xv-kMq9_Xe6LtVwPDsbmCbO08HS5J0pRY/s640/facebook-login-alerts-settings.png" title="Login alerts settings in facebook" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjenM_p9-knTJmK7adsje04gmDAHB6K29kQY4CVWTcKUaGI4lfSF6ERmLa34nucQ63g_KCjqztscXycxwtr6U-8MoYW8oHpOvRvMrNjfaE8Apac3kXzrPQOHpkPl0PYtKIoSBTARJOOYFY/s1600/login-security-notifcation-facebook.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="login-security-notifcation-facebook" border="0" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjenM_p9-knTJmK7adsje04gmDAHB6K29kQY4CVWTcKUaGI4lfSF6ERmLa34nucQ63g_KCjqztscXycxwtr6U-8MoYW8oHpOvRvMrNjfaE8Apac3kXzrPQOHpkPl0PYtKIoSBTARJOOYFY/s640/login-security-notifcation-facebook.png" title="login-security-notifcation-facebook" width="640" /></a></div>
<br />
<br />
<br />
As soon as you enable this setting, you will get a notification on Facebook and also on email.<br />
<br />
<br />
<b>2. Enable Login Approvals</b><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM9kOW7_eT5urkX0IkAfpC4GX0F5QHqV-TTnDmE-OO6tL0u50fQCNuQBS9iGBXdIylksyakJ1N-eLUFsq0ubf_xw28e8VOWLHsFD_YjkTb9feSi-kuEszpGPghtXHI1DCQmC08w-Av69s/s1600/login-alert-facebook-notifcation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="login approval notification in facebok" border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM9kOW7_eT5urkX0IkAfpC4GX0F5QHqV-TTnDmE-OO6tL0u50fQCNuQBS9iGBXdIylksyakJ1N-eLUFsq0ubf_xw28e8VOWLHsFD_YjkTb9feSi-kuEszpGPghtXHI1DCQmC08w-Av69s/s320/login-alert-facebook-notifcation.png" title="login approval notification in facebok" width="320" /></a></div>
<br />
If you enable Login approvals, you will get a notification on your mobile device which contains the Facebook app.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzacPzx5Ut3QO27f-8sYXRXqXassES_Zi7yFYam9DhIFLUSU-RNa3lHBjyG-OR0tYNGg0UbQdmHAzSah5DVdYMhzc06BmuPTZ1QJ1wbwn9yLOIEHzieqw8wH5CwUg7C7CrM4XP939G3TI/s1600/facebook-code-login.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="code login facebook" border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzacPzx5Ut3QO27f-8sYXRXqXassES_Zi7yFYam9DhIFLUSU-RNa3lHBjyG-OR0tYNGg0UbQdmHAzSah5DVdYMhzc06BmuPTZ1QJ1wbwn9yLOIEHzieqw8wH5CwUg7C7CrM4XP939G3TI/s320/facebook-code-login.png" title="code login facebook" width="320" /></a></div>
<br />
<br />
You can also alternatively <a href="http://www.sundeepmachado.com/2017/02/how-to-enable-two-factor-authentication.html" target="_blank">enable two factor authentication in Facebook</a> where you will get a code via SMS if you have added a valid phone number.<br />
<br />
<br />
<b>3. Remove unrecognised devices from your account along with old devices</b><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEithPrytuanL3T6a9nJpvlBrjuge-ZEqMN1yIlM0zenyjP1awexYZZQMHnj74ztJb-ihq0ZK3g83nCpLCZ5AWjpyYHOJh6IO-RhCSk7LeMAXRUipsu9lOaA8Aen1_21IHLsU0dRHMjH9qs/s1600/remove-unrecognised-devices-facebook.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="remove unrecognised devices in Facebook" border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEithPrytuanL3T6a9nJpvlBrjuge-ZEqMN1yIlM0zenyjP1awexYZZQMHnj74ztJb-ihq0ZK3g83nCpLCZ5AWjpyYHOJh6IO-RhCSk7LeMAXRUipsu9lOaA8Aen1_21IHLsU0dRHMjH9qs/s640/remove-unrecognised-devices-facebook.png" title="remove unrecognised devices in Facebook" width="640" /></a></div>
<br />
As you use Facebook, there will be old and unrecognised devices that you don't use anymore. You can easily remove them.<br />
<br />
<br />
<b>4. Review the devices which are currently using the Facebook account </b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKgwm1DvYwfTSxw1sJx8M9OY3gjYd4btLCAnTIqSyRb3X4ttnu2z8_FU4NpHqMVwMs_YQxrmUGBn6OmZNYW6bZJFhBQKarAtbvT2A1U9MV16661qIGrlzTiO3n0NTS0HMbz6s1X1wEtA8/s1600/where-are-you-currently-logged-in-facebook.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="check Active sessions in Facebook" border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKgwm1DvYwfTSxw1sJx8M9OY3gjYd4btLCAnTIqSyRb3X4ttnu2z8_FU4NpHqMVwMs_YQxrmUGBn6OmZNYW6bZJFhBQKarAtbvT2A1U9MV16661qIGrlzTiO3n0NTS0HMbz6s1X1wEtA8/s640/where-are-you-currently-logged-in-facebook.png" title="check Active sessions in Facebook" width="640" /></a></div>
<br />
You should remove the devices which you don't recognise or use from this list.<br />
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-38852605697433913222017-04-21T09:54:00.002+05:302017-04-21T10:02:46.150+05:30How to understand demographic information of users using Google Analytics?<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifki__lTRhvAHC_ENcnuTVHgE3mxZRqYWKmKpusBVLbEiFWWmGwJ4QBupYPolh0VZtVEENStpCqyoKl0blGigJSmkTVLxcV00jhru3CBSaHI2g0iXoW7eSrpuOVZ06ZTgMvHNP14khnSQ/s1600/google-analytics-logo.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Google Analytics Logo" border="0" height="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifki__lTRhvAHC_ENcnuTVHgE3mxZRqYWKmKpusBVLbEiFWWmGwJ4QBupYPolh0VZtVEENStpCqyoKl0blGigJSmkTVLxcV00jhru3CBSaHI2g0iXoW7eSrpuOVZ06ZTgMvHNP14khnSQ/s200/google-analytics-logo.png" title="Google Analytics Logo" width="200" /></a></div>
<br />
Google Analytics has a cool Demographics feature that allows to better understand users who visit your website and users who use your mobile apps.<br />
<br />
<br />
<a name='more'></a><br />
<br />
You can find the demographic information in the <a href="https://support.google.com/analytics/answer/2819948?hl=en" target="_blank">Demographics option in Google Analytics after you enable it as an admin user</a>:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ODiqf4okMcl5zlNnEE65pbYi1qwxqgmdhpMtRr_Jfk_dvWj_-VBAbHBJHrOb4v29WS5D22NMcjqLY3p5hGPW5r-Y-T-XVhHSpZ5XAV9aTW_ez75JAcxEmSHGfatYg1XFrYLC5CBEvlk/s1600/user-demographic-google-analytics.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Demographics using Google Analytics" border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ODiqf4okMcl5zlNnEE65pbYi1qwxqgmdhpMtRr_Jfk_dvWj_-VBAbHBJHrOb4v29WS5D22NMcjqLY3p5hGPW5r-Y-T-XVhHSpZ5XAV9aTW_ez75JAcxEmSHGfatYg1XFrYLC5CBEvlk/s320/user-demographic-google-analytics.png" title="Demographics using Google Analytics" width="320" /></a></div>
<b><br /></b>
<b>How does user collect this data?</b><br />
Google collects this data using Android Device ID for Android users, iOS Identifier for Advertisers (IDFA) for iOS devices and third party cookies for website visitors.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSSyxuxNrP1SAmmKNKXrnMM6XkiVrCQsOxXzAEW3mJFuGEH3KaI3U7S73VTcMN4iTSgRxJhOkUNLv4kzHjjPiz_heMOJkhr5hTn24L2MqzsClKQ5OHgVJ7rMPIZPyZ1Ze_kgrPb_X62Wo/s1600/demograhic-information-age-google-analytics.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Demographic information age using Google Anaalytics" border="0" height="325" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSSyxuxNrP1SAmmKNKXrnMM6XkiVrCQsOxXzAEW3mJFuGEH3KaI3U7S73VTcMN4iTSgRxJhOkUNLv4kzHjjPiz_heMOJkhr5hTn24L2MqzsClKQ5OHgVJ7rMPIZPyZ1Ze_kgrPb_X62Wo/s400/demograhic-information-age-google-analytics.png" title="Demographic information age using Google Anaalytics" width="400" /></a></div>
<br />
<br />
<b>Why this data is useful?</b><br />
This helps to target particular advertisements or content to users who would like them.<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTqc58QjR35vxK3Wpb0rWaeKaGEB7GbkjjI0JSzlS3Evo_NkSqlNxMpIBPXNQPqnpMqR4Kwteme459hTivU-1kCyvccGmn3CLIeiRgiTiHyHS8j6dzrBBie_fjxu_-wpyj8K5tJqbQ6Rg/s1600/multiple-criteria-google-analytics-demographic.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Multiple criteria Google Analytics" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTqc58QjR35vxK3Wpb0rWaeKaGEB7GbkjjI0JSzlS3Evo_NkSqlNxMpIBPXNQPqnpMqR4Kwteme459hTivU-1kCyvccGmn3CLIeiRgiTiHyHS8j6dzrBBie_fjxu_-wpyj8K5tJqbQ6Rg/s400/multiple-criteria-google-analytics-demographic.png" title="Multiple criteria Google Analytics " width="288" /></a></div>
<br />
<br />
<br />
<b>You can also co-relate the data by adding Segments to the demographic reporting.</b><br />
<br />
This will answer queries like:<br />
<br />
<ol style="text-align: left;">
<li>How many new website visitors are male or female?</li>
<li>What content is popular among which age group?</li>
<li>How many males are visiting the website for the first time and are using a mobile device</li>
</ol>
<br />
<br /></div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-62978975643183509222017-04-19T21:15:00.002+05:302017-04-19T21:20:56.124+05:30Make more money using Google AdSense Page-level ads <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFC_98uaDxjRPONfYZ_qAdIyW-24ZvYsz-cXfAc1xgDJhmE7d-eltcgk-izjFFtAZEvtopTvp2LxH53CIugI3teFmz_mkoVgbBDIzyFAeM6kNJRaqKH4Jumyb7S4LENvbk00Y2r85H37Y/s1600/google-adsense-page-level-ads.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Google Adsense Page level ads" border="0" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFC_98uaDxjRPONfYZ_qAdIyW-24ZvYsz-cXfAc1xgDJhmE7d-eltcgk-izjFFtAZEvtopTvp2LxH53CIugI3teFmz_mkoVgbBDIzyFAeM6kNJRaqKH4Jumyb7S4LENvbk00Y2r85H37Y/s200/google-adsense-page-level-ads.PNG" title="Google Adsense Page level ads" width="200" /></a></div>
<br />
Google Adsense team had announced two new ad formats for mobile users called Page-level ads some months back.<br />
<br />
The page level ads load at optimal times so that users are not bothered by ads when they are viewing the mobile website.<br />
<br />
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/ueQczl94GuI/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/ueQczl94GuI?feature=player_embedded" width="320"></iframe></div>
<br />
There are two types of Page Level ads:<br />
<br />
<ol style="text-align: left;">
<li>Anchor/overlay ads - Ads that stick to the end of the page</li>
<li>Vignette ads - Full screen ads like a splash page</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8ceBO5TtItTWNwCtCXJmjLEmrSvFQQUf0z6DGQ9qirwAQY8CtvO73Goi-2oGezk6O2L7OJgnHGXt76R4PyQN0MA_ZvMh06ucatW-kbCUfmqCdFE-Tg0mN4uzMaKG9VikD6VFmU0bfr3g/s1600/google-adsense-page-level-ads-two-types.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Two types of Page Level ads" border="0" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8ceBO5TtItTWNwCtCXJmjLEmrSvFQQUf0z6DGQ9qirwAQY8CtvO73Goi-2oGezk6O2L7OJgnHGXt76R4PyQN0MA_ZvMh06ucatW-kbCUfmqCdFE-Tg0mN4uzMaKG9VikD6VFmU0bfr3g/s640/google-adsense-page-level-ads-two-types.PNG" title="Two types of Page Level ads" width="640" /></a></div>
<div>
<br /></div>
<div>
You need to put the ads between the head tag or at the top of the body tag.</div>
<div>
<br /></div>
</div>
sjmachhttp://www.blogger.com/profile/08269837582976340110noreply@blogger.com0tag:blogger.com,1999:blog-6065001694786660108.post-21464779434766501332017-04-19T19:00:00.000+05:302017-04-19T19:00:00.831+05:30How to work with Google Data Studio and Google Analytics<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-tZRJHYuuRME/WPdJmCtij1I/AAAAAAAADz4/oC7yFGYV2bMr_1QaNgzyYEJoIWSC-VMXACLcB/s1600/google-data-studio-anaytics.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="https://3.bp.blogspot.com/-tZRJHYuuRME/WPdJmCtij1I/AAAAAAAADz4/oC7yFGYV2bMr_1QaNgzyYEJoIWSC-VMXACLcB/s200/google-data-studio-anaytics.png" width="200" /></a></div>
<br />
<br />
<br />
Google has recently introduced a free Business Intelligence tool called <a href="https://datastudio.google.com/" target="_blank">Google Data Studio</a> which works well with Google Analytics to create feature rich dashboards for business users.<br />
<br />
<br />
<br />
<a name='more'></a><br />
<b> How to use Google Data Studio with Google Analytics?</b><br />
In order to use Google Data Studio, you need to a add a data source after you select "create a new report "option. This data source can be your Google Analaytics account.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-m6ULSlyCzWc/WPdFX2HT--I/AAAAAAAADzM/Bac49A_dTB46YWvp0ai6cAwwneKby4N_QCLcB/s1600/google-data-studio-google-analytics.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Google Data Studio with Google Analytics" border="0" height="176" src="https://3.bp.blogspot.com/-m6ULSlyCzWc/WPdFX2HT--I/AAAAAAAADzM/Bac49A_dTB46YWvp0ai6cAwwneKby4N_QCLcB/s320/google-data-studio-google-analytics.png" title="Google Data Studio with Google Analytics" width="320" /></a></div>
<br />
After you add the data store, you can easily create reports using Google Data studio using the different options in the panel.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-xILI_w1CZqY/WPdGBAyFyDI/AAAAAAAADzU/JNB1B9PnxhskF9fjZD2xcA9V8vwHV_RngCLcB/s1600/google-analytics-data-display-google-data-studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="New Report Google data Studio" border="0" height="241" src="https://3.bp.blogspot.com/-xILI_w1CZqY/WPdGBAyFyDI/AAAAAAAADzU/JNB1B9PnxhskF9fjZD2xcA9V8vwHV_RngCLcB/s640/google-analytics-data-display-google-data-studio.png" title="New Report Google data Studio" width="640" /></a></div>
<br />
After you create a report, you can create a Dashboard as below:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://4.bp.blogspot.com/-y7mAUY9mG9U/WPdHGrYzetI/AAAAAAAADzg/yUmx_8BbCiICGBdR9-Oxs05AvavocV-HwCLcB/s1600/complete-report-google-data-studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Sample report Google Data Studio" border="0" height="225" src="https://4.bp.blogspot.com/-y7mAUY9mG9U/WPdHGrYzetI/AAAAAAAADzg/yUmx_8BbCiICGBdR9-Oxs05AvavocV-HwCLcB/s640/complete-report-google-data-studio.png" title="Sample report Google Data Studio" width="640" /></a></div>
<br />
You can also customsize the report with the palette option.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-4eg4Dzmlp2c/WPdHnDYUDVI/AAAAAAAADzk/eZ1LlGJ7atggX-V-b7kenq47qqIldY-1wCLcB/s1600/customize-data-studio.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Layout and Theme - Google Data Studio" border="0" height="320" src="https://2.bp.blogspot.com/-4eg4Dzmlp2c/WPdHnDYUDVI/AAAAAAAADzk/eZ1LlGJ7atggX-V-b7kenq47qqIldY-1wCLcB/s320/customize-data-studio.png" title="Layout and Theme - Google Data Studio" width="175" /></a></div>
<br />
<br />
This gives more options for business users like advertisers to understand how data which is collected by Google Analytics and make decisions.<br />
<br />
<br />
Google Data Studio also works with other data sources like Google sheets, MySQL and PostgreSQL databases and other Google Products.<br />
<br />
<br />sjmachhttp://www.blogger.com/profile/13128759308353994017noreply@blogger.com0