Pramod, we miss you man!

On this day, a year back we lost Pramod Thekkelthody, Manager of Operations at Orion India Systems, who was a beloved person for an infinite number of people. Why people liked him is because of only one thing, his ‘caring’.

IMG_20190816_175423

People who know me personally knows that I am not such a person who bothers about deaths, or other events such as marriages. But for the first time in my life, I am feeling that a life event means something. I still do not believe Pramod is not with us today.

He was hospitalized for Angioplasty, and it was Covid season so entry was restricted, and I also did not have the intention to disturb him. I was getting regular health updates from other friends but we did not think things are going to be out of our control. On 5th May 2020, morning around 7:30am, after his discharge day from hospital, I thought to call him but since it was early morning so I did not do it. But by 10:30am, some unknown vibrations were haunting me and I sent a WhatsApp message to him.

WhatsApp Image 2021-05-05 at 11.14.50 AM

But in 10 minutes, I got a call from the friend Vinod that, he left us few minutes back.

In 2010, I got the job as a Project Manager, R&D and had to relocate from Thiruvananthapuram to Ernakulam. I was new to Ernakulam and sensing my frustrations, may be, I don’t know… Pramod has been calling me and explaining the route, guest house facilities a month early itself. On the way to Kochi, he called me multiple times to ensure I am okay, and he wanted to know where I am until I reached the guest house. Next day morning, he himself came to pick me up from the guest house to report on time at office. I was seated a cubicle away from his, inside the same room along with small HR team. I had to leave after six months and I have rejoined Orion in 2012. Again same story, multiple calls and helping to settle.

Between my tenure, twice I got offers from other companies and it is just because of this guy, I turned those down. We say “people leave managers not companies”, for me “it is people leave people”. On 2021 April, I left Orion. This time Pramod was not there to stop me. If he was there, I would not have even think about a resignation.

He was everywhere. He was a role model for commitment and dedication. He was a guide and mentor to many. Every friend of him has a story to tell. He was a power for us to boost courage. I also have many stoeis, will try to write when in good mood…

Orion has been a permanent home for K-MUG sessions for over a decade and it would not have been possible without his support. It was him who helped us by arranging the training hall, refreshments with snacks of our choice, and notepads, pen and the speaker mementoes. Many a time he even cancelled other company events to make room for K-MUG events and he even extended hand to renting hall outside when in unavoidable situations. But he never took credit for anything. He also played a big role in the success of K-MUG recent years.

We volunteered together for our charity initiative Smile O’n.

We lost a good friend. You are still with us, in our memories.

A quick Sentiment Analysis app using Azure Cognitive Services

Step 1: Create a Text Analytics Resource

From the Azure Portal, create a resource “Text Analytics”

image

Once created, you should be able to get the Endpoint URL and Key from the “Keys and Endpoint” section

image

Step 2: Create a .NET Console application in Visual Studio

Get the Azure.AI.TextAnalytics nuget package for your solution

image

Here you go your sample code

 
using Azure;
using Azure.AI.TextAnalytics;
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "https://mytestoutlookaddin.cognitiveservices.azure.com/";
            string key = "paste_your_key_here";

            var client = new TextAnalyticsClient(new Uri(url), new AzureKeyCredential(key));

            DocumentSentiment mood = client.AnalyzeSentiment("It's a nice day!");
            Console.WriteLine("Mood: {0}", mood.Sentiment );
            Console.WriteLine("Positive: {0}", mood.ConfidenceScores.Positive);
            Console.WriteLine("Neutral: {0}", mood.ConfidenceScores.Neutral);
            Console.WriteLine("Negative: {0}", mood.ConfidenceScores.Negative);
            Console.ReadKey();
            
        }
    }
}

Below is the output expected:

image

Read a Brainyquote and parse the value using xpath in .NET

using System;
using System.Net;
using System.Xml;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            using (WebClient wc = new WebClient())
            {
                string data = 
                    wc.DownloadString("https://www.brainyquote.com/link/quotebr.rss");
                XmlDocument xml = new XmlDocument();
                xml.LoadXml(data);
                var node = xml.SelectNodes("//rss/channel/item[1]");

                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("{0} by {1}",
                    node[0]["description"].InnerText,
                    node[0]["title"].InnerText
                    );

                Console.ResetColor();
            }
        }
    }
}

List of mistakes on Security aspects which developers usually make

Below are some common mistakes developers make while development. Most of the mistakes will not impact the functionality of the application so tendency is to make the mistake subconsciously. Security should be by design and it is not something we should incorporate after the development.

OWASP guidelines should be taken as high priority in addition to this list.

  1. Writing sensitive information such as passwords in the paper or sticky notes
  2. Sharing credentials between team members
  3. Hard-coding sensitive information as plain text, including passwords in the application in configuration files, databases and comments
  4. Not encrypting the database
  5. Use of untrusted code from public internet forums without proper reviews and corrections
  6. Not encrypting the communication channels such as API
  7. Not following the principle of least privileges
  8. Opening server ports to public
  9. Not enforcing password policies (strong password, expiry policy, multi-factor-authentication)
  10. Not educating oneself on the secure coding practices
  11. Writing SQL in application code, instead of using stored procedures or ORM libraries
  12. Not validating user input values at server side
  13. Not setting session expiry policy
  14. Giving password hints on unsuccessful login attempts
  15. Not using custom exception pages, instead expose the debug messages to user
  16. No logging and monitoring
  17. Not making use of cryptography libraries
  18. Not writing unit testing code
  19. Not Automating static code analysis tools such as SonarQube
  20. Using untrusted sources for downloading libraries