creating a (serverles) function in 2 clouds

June 9, 2020

I was happy with my experiments with AWS Lambda, and tried using AWS portal, using Serverless, using SAM, using Chalice. Then, I “felt” that Azure Functions with SQL Azure could be far cheaper than AWS and ANY RDBMS

Next step – obviously, to see if I could try out Azure Functions (with serverless framework) too! Here’s what happened – merely a record of my experiences.

I chose Python runtime in both clouds – decided to date Python for sometime!

Here’s the log of my actions & thoughts!


Trying to create my second project with Serverless and Azure Functions for Python runtime.
First step is simple
“sls create -t azure-python -p az-sls-py-5”
For some strange reason, sls takes so much time to act on this, I often wonder if my laptop is hanging.
Anyways, boilerplate code is created
Moved to that folder from where I was
“cd az-sls-py-5”
“ls” shows me 2 .json files host.json, package.json; one README.md; one requirements.txt; one serverless.yml, and a folder src
src folder has handlers folder
handlers folder has goodbye.py and hello.py

Thats a bigger hierarchy and more files than I expected. But, way less than some of the other tools generate (not for serverless)

Went back to project main folder (2 levels above)

Issued “sls package” command
Pretty fast
Expect bigger problem now when I issue “sls deploy” command – it ALWAYS gives some error about “Authentication returned an empty list of subscriptions” and makes me go through a series of steps – EACH TIME!!!!

anyways, I issued “sls deploy” command, and it bombed – as expected!

There must be someway to save my configuration, and prompt “sls deploy” to use that by default!
That’s how I use sls deploy for AWS Lambda functions.

Again and again, I search and find my way to https://github.com/serverless/serverless-azure-functions#advanced-authentication and followed the instructions

Step 1) az login
This is crazy. I signed up to work at CLI and this command launches the browser and asks me to login to my Azure account. When there is a CLI, shouldnt there be some access key and secret? Doesnt Azure have this, or, am I missing something?
Anyways, on successful login, my command prompt returns a set of name-value pairs
Names that are returned include – cloudName, homeTenantId, id, isDefault, managedByTenants, name, state, tenantId, user – which had 2 sub-elements – name, type (Apologies for showing this in a text-only way)

Step 2) Next instruction says
“# Set Azure Subscription for which to create Service Principal
$ az account set -s “
Please note that “az login” didnt return us any value that calls itself as “subscription-id”

I went to portal.azure.com and clicked on the Subscriptions icon.
The Subscription ID I find there matches “id” in what “az login” returned

So, now I issue the second command to create Service Principal “az account set -s

Success!

Step 3) next instruction says
“Generate Service Principal for Azure Subscription

Create SP with unique name

$ az ad sp create-for-rbac –name <my-unique-name>”

I dont know what is my-unique-name!
Whenever a user is allowed to enter a string, someone should inform him of min length, max length, permissible characters! (Nor did I understand why I need to do this, and the relevance of this)
My expectations are from the thousands of windows / web applications I used from ’90s.

Success – with 2 yellow color messages in command prompt. I thought they were warnings – looks like they are not

First message said “changing my-unique-name to a valid URI of http://my-unique-name which is the required format used for service principal names.
Second message said “Creating a role assignment under the scope of “/subscriptions/mysubsciptionid”
And, it returned more name-value pairs

Names are – appId, displayName, name, password, tenant

displayName is what was referred to as my-unique-name in last step. Who changed its “name” and why?
name was the URI format of my-unique-name
other 3 values are GUIDs – except that what was called homeTenantId, or tenantId is now being called as tenant
Thanks for adding to my confusion

We’re NOT done yet!

Step 4) this is the last set of instructions before I can run deploy command again. github page says
“Set environment variables with values from above service principal

Bash

$ export AZURE_SUBSCRIPTION_ID=”
$ export AZURE_TENANT_ID=”
$ export AZURE_CLIENT_ID=”
$ export AZURE_CLIENT_SECRET=””

subscriptionId – thats the id returned upon az login
tenantId – last value from previous command’s output – referred to as “tenant”
servicePrincipalId – this is the my-unique-name we gave few minutes ago
password – no confusion

Done!

Step 5) run sls deploy
It bombed
Error message says “Error: Get Token request returned http error: 400 and server response: {“error”:”unauthorized_client”,”error_description”:”AADSTS700016: Application with identifier….”
This means my tenantId was wrong

This time, I reissued the command
$ export AZURE_CLIENT_ID=”
but instead of giving my-unique-name, I typed the URI (http://my-unique-name)

Again, issued “sls deploy” command – this time, it is making progress!

Please also note that I didnt open ANY of the generated files (especially serverless.yml) to make any changes to the desired region or stage or whatever!

Deployment done!

Phew!!!!


Compare this with creating an AWS Lambda function with serverless
Step 1: sls create -t aws-python -p aws-sls-py-6
Step 2: I went into that folder (cd aws-sls–py-6) and checked contents (ls) . Has just 2 files – handler.py and serverless.yml/ (cd is a necessary step, but not ls)
Step 3: next command sls package
Step 4: sls deploy

And, I’m done!
My Lambda function is deployed

Only thing that calls for additional investigation is – why is a .zip file getting uploaded & deployed? And not just plain .py code?


Looking back, looking forward…

May 24, 2020

Approximately 5 years ago, I wrote a post about my unfulfilled dreams.

Here I am, at the end of May 2020, locked down at my home (not merely because of Covid19), and trying to look back at “the years that were”, and which of my wishes / dreams I acted on, and which I couldn’t / didn’t!

The biggest change, of course, has been that I lost my employer in March 2019! This sounds way better than saying “I lost my job” 🙂 🙂 My age, my last drawn salary, my knowledge/experience, and my mouth – all seem to come in the way of getting another full-time assignment in my field, in Chennai!

(P.S. If this makes you feel you wish to look at my profile, please look at https://www.linkedin.com/in/krishnakishorebhavaraju/)

Reading / Learning:

  • I was feeling bad I used to buy / start reading books, but never completed them. Substitute books with MOOCs, and the story remains unchanged! (Except in April 2020, when I completed around 2000+ minutes of video-based learning from Pluralsight.com alone!)
  • Was hoping I could “study” more, and try acquire a higher qualification. Thats one area where I made good progress – joined an distance education MBA program with Pondicherry University, and completed all my academic formlalities – waiting for final semester results! Equally proud of my AWS Certified Solutions Architect – Associate level certification obtained in July 2019. Next one soon!
  • Wanted to create my own applications! Didnt do that yet – but, with Functions As A Service, Serverless Computing, and a new found infatuation with Python – I’ll have some good news soon!

Sharing:

  • Blogging has been very minimal.
  • Sharing outside of my workplace has been even lesser. (except for sharing links on social media)
  • Telugu-English translation dreams are in deep sleep! Can I resume where I left it? Yes!
  • Best thing I did recently is to give an online life to the hundreds of “Javali”s my mother collected during her research. Started a blog site https://javali.blog few weeks ago, and it is going good! 30 posted, another 500 or more pending…. And then search for audio / video clips! Sounds like the project of a lifetime!

Fitness / Travel:

  • Better left unsaid! 🙂 I managed to gain good weight to hover around 75kg now! While I had started walking regularly around 2km a few times a week, it became a nought in the last 2 months! (Dreading I could become another slow-walking Jabba The Hutt)

Career Goals:

  • Seriously? At 52? Anyways, my dream of starting my own “software product company” has been rather successfully replaced with a dream of having “my own microproduct”! Definitely within next 100 days! Yes – cloud, SaaS, APIs, Serverless, and all other useful things that I learnt so far!

Friends and Family:

  • WhatsApp overtook all other forms of interaction outside immediate family! 😦
  • Elder child is doing her Masters, and younger one is experiencing minor delays in her journey into a college – thanks to Covid19 lockdown! Both have chosen “design” as their destiny!
  • Wife has rediscovered her lost art of painting and has been creating splashes on Instagram and is also occassionally selling some of her works on etsy

Music:

  • Remained in the bathroom – despite installing Smule a dozen times on phone!

Only thing certain is I’m NO LONGER middle-aged! 🙂 🙂

As Amul would have said, “I am too old to chase investor funding for my ideas, too young to give up and retire as a grandpa!”.

But, alas, “I dont think I am right for Amul Chocolates either” – not when I take 3x500mg of Metformin each day!! 🙂

This isnt the first time in last 50+ years I am wishing things could be better, and this wont be the first time I wont win either!

Until next shor! Ciao!


Learning Microservices & Containers in 2020, Recollecting MTS from 1996

March 22, 2020

I have been intrigued by the noise about microservices and containers for the last 5+ years. Regarding Microservices, I tried reading some articles, watched a vew videos,  and each time, I kept feeling “I knew this for a while”.

Few weeks ago, I finally viewed a few short video tutorials on Containers (specifically, Docker). I liked the concept. But then again, I kept thinking of “so here is a small ephemeral runtime container in which my business logic would run, and this sounds familiar too”.

Today, I finally decided to sit down, scratch my head and perform some intense read-operations from archives in the cold storage of my head, to recollect some lessons that I first learnt in 1996, and went on to see them in production in 2003-04 as an administrator of a mega enterprise application.

Here we go – I’m going back to the memories of Microsoft Transaction Server (code named Viper), COM components, declarative transactions, surrogate processes, and the next avatar- COM+

Some memories could be rusted/ vague. So, dont shoot me if my memory is conveniently ignoring something, or misinterpeting something from past.

Once upon a time, in September 1996, I came across the terms Interfaces (lollipops over rectangles), COM components. And I heard a not-so-thin, rolly-polly man tell us – “write your business code as simple single-threaded methods in components, call JUST ONE  extra method to indicate success/ failure, leave the rest of the plumbing to us” – MTS.

Lessons that I carried from then onwards:

    1. Identify how to break up your application’s business domain into smaller “business” components
    2. May be, break the business component into at least 2 technical components – those that do transactional work (Create, Update, Delete), and those that dont change data (typically retrievals / queries).
    3. Obviously, these components need methods in other components to work and complete business tasks. But, no need to bind them at development time, you can always invoke them at runtime. (Of course, you need to know what data to give, and what to expect back)
    4. At build time, each component was packaged as a Windows DLL. That meant, it didnt OWN a process of its own, and needed an OS process at runtime.
    5. OS offered a container EXE for each such component, when invoked.
    6. If multiple invocations happened concurrently, there would be multiple instances of DLL, having watertight isolation across invocations.
    7. If one such DLL were to misbehave/ crash, only that surrogate process would crash/ fail. Rest of the processes/ executables in the server could remain reasonably intact.
    8. Of course, a single process could go on to hog a lot of CPU / memory, and I dont remember seeing anyway to set limits.
    9. Small handicap was that all such processes typically worked in the same server / OS context. But, my memory says, components could be deployed in other machines also, and remotely invoked. But, that involved a higher latency. (RPC)
    10. Connection Pools were available in each ‘process’ so that database connections could be optimized – but, imagine too many processes, each maintaining its own pool.
    11. That was the first time I learnt about a “surgical strike approach” – “go in, do the damage, and get out” – acquire a database connection as late as possible, use it, release it as soon as possible. (2-tier client-server applications used to hold database connections from login to logout, on behalf of each logged in user)
    12. A process could host one or more components.
    13. A component could be written in any programming language of choice. (*Conditions apply? I definitely recall C++ and VB components)
    14. Each method of a component that agreed to participate in a transaction stated it “Creates a new transaction”, “Requires a transaction”, “Supports a transaction”, “Doesnt need transaction” – this was declarative.
    15. At runtime, a method of one such component didnt know who were the other participants in the transaction (or, if there was a transaction boundary at all), and hence was expected to merely express its own comfort level by indicating “Set Complete” or “Set Abort” – indicating it was happy or unhappy.
    16. A conductor method would orchestrate invoking methods of relevant components. But, each participant had a say in the overall distributed transaction.
    17. Each component could be deployed/ updated without bringing down all other components.
    18. During deployment / subsequent operations, an admin could dynamically rearrange components into a different “package” – so that components that called each other could be packaged together to make all inter-component calls Local. 

 

  1. And a process would be spun up only when a component is invoked, and kept idle even after the method execution is completed – either for a specified duration, or for ever. Cold starts were controlled by admin, not by God.

Fast forward to 2020, many of the lessons I learnt while designing those components appear valid while designing microservices. We were still firm believers of Distributed Transactions then (and later, compensating transactions), so, the idea of each component choosing a different database engine was unthinkable. But, each component could use a different database instance (as long as it was MSDTC-compliant)

Today’s containers are built by developers, but the composition of a runtime process container was configurable by Admin at that time.

Did any of you use MTS / COM+? Do you also relate to the “modern” concepts of microservices and containers the way I did? Or, do you think I am comparing apples and oranges?

I’m sure the new principles and patterns are evolved solutions to problems that surfaced in the last two decades while designing, deploying, and running distributed applications. But, not entirely new!

RSVP


My v1 Affairs

February 23, 2019

Havent written in a while! (Was busy writing  user stories or other learning posts in our corporate wiki)

Few weeks ago, I started looking  back at my career to figure out what I have done! Even if you know me well, here’s a quick summary!

I started working as a faculty at a computer institute in Chennai on 6th July 1991. Taught GW Basic, MS DOS, C, WordStar, Pascal, and few other courses to students 14-50 years old!

In September 1992, I switched to a different company – this time, into curriculum development – creating the student reference material, slides faculty used, designing  lab exercises.. My contribution to Introduction to Computers, DOS, Word Processing, databases, was completed in 9 months and I wanted to explore beyond the training industry.

Joined a “large” 120+ employee enterprise software products company in Chennai in 1993 – as an executive in Product Communications team. Spent 2.5 years interviewing product development teams, product managers to learn about the work of each of the two dozen teams, and create product brochure, product booklet, presales slide deck, demo disk, for each of them.

Luckily, I moved back from fiction to facts when I joined a development team in the same company. First assignment was a maintenance, enhancement, and support of the MOST critical reusable component of the technology stack – a Distributed Transaction Manager. It was a challenging learning experience – enhancing a reusable component that offered APIs, where new functionality was to be added, while maintaining 100% backward compatibility with API signatures and metadata schema – I would encourage any fresher to begin with a similar role. There is a lot a fresher would learn from walking through others code – my quota was in C++, MFC, SQL Server, ODBC, DB-Library.

By around late 1996, we started working on creating a new “platform” for reverse-engineering and auto-migrating 2-tier client-server applications to n-tier browser-based applications. Jumping into ASP, COM/DCOM, MTS, MSMQ was a lovely challenge at a time internet access was scarce, slow and we were among the chosen few working in those technologies. Actually a bigger challenge was to figure out what we were planning to build, for who, when to deliver an MVP (I learnt tat term much later). There started my tryst with building a version 1. What started then underwent many changes after I left that team by end of 1999, but most key concepts are still in use, by hundreds of developers, and also in use at hundreds of customer locations globally!

Moved to presales in 2000 and helped a few customers in US to build their products – one real-estate portal, one semiconductor surplus auctions portal, a browser-toolbar companion for a sales portal, an email-embedded applet,… Few aborted, few successful – until the dot com bust brought me back to India. Proud to say all these were version 1 of the respective products!

Back in Chennai, I moved into managing two development teams – to build Discrete Manufacturing and Process Production solutions – using the same platform I was a creator of, a few years earlier. These two were not a version 1 from a functional stand-point, but, a technology version 1. And, it was more challenge and learning taking the product for the FIRST full-suite implementation for the entire suite – discovering what worked, what broke, successful and outrageous design patterns, …

2005 gave me the largest opportunity – to be a solution architect to build a ground-up solution, to replace a hundred existing mainframe-based applications. Department heads wanted as-is replacement, while the sponsor wanted a ‘productized’ solution that could be rolled out to other similar customers. Gathering requirements from 14+ departments and building one solution… Replacing 30+ years of COBOL legacy with a browser-based application to roll out millions of flawless bills each month… It was functionally and politically more complex that most other assignments till date. But, I couldnt stay until the final go live, left in 2008.

I stayed away from products between 2008-2010, but, the God of Software Products smiled on me again when I was chosen to build a cloud-based software product (at a software services company!) I still feel blessed to have got started with Azure PaaS, a bunch  of young team members who had graduated few months earlier, a strong right-hand man who taught us a lot, discover what was needed for a corporate Learning Management System, decide tech stack, decide name (crowd-sourced ideas), did 2 rounds of UI changes (with second round mimicing Facebook, courtesy a young QA engineer), created roadmap, decided on pricing, first minimal product web site, first exhibition, first prospect, first negotiation, first deal,… Again, unfortunately, I didnt have the skills to replicate the sales success. This was, however, the ONLY product where I participated from inception to production, operations, and support. The only time when a v1 also led to the feeling of “We Won”.

2012-2015 was spent overseeing 10+ young product development teams at the offshore development center of a large US-based company. But, my contribution to products was minimal, and not much of a v1 either.

Went back to my “home” company between 2015-2017, but, couldnt get to build another v1 during that time.

2018 gave me another chance – this time to build an ecommerce solution – stores, marketplace, seller portal, integration – the whole nine yards. 20 campus hires, no real expertise in ecommerce, entirely on AWS, it was learning, sharing, mentoring each day – I had my chance to build yet another v1.  Discovering what we should build, ruthless prioritization, 2-week sprints, running Dev, QA and (almost) PROD environments, jumping from Magento to NopCommerce, APIs, MySQL to RDS to Aurora, SQLServer, MuleSoft, experiments with RabbitMQ, SQS, Lambda, Jira dashboards to keep us on track, testing each screen yet not losing focus on big  picture, …. v1 completed, but we lost! Sadly, we couldnt continue and take it to GoLive.

Anyways, in summary, I realized I’m a software products guy! A software products guy who loves building a v1.

At the ripe age of 51, I look forward to building few more v1 products, preferably on cloud, preferably SaaS, living Agile/DevOps religion, rubbing shoulders with 20+ aged young engineers who are more open to learning, peers who are mature enough to say “I dont know”, and an investor/ sponsor who is hell-bent on monetizing the product….

Next time, would love to say “We Won with v1”.

Edit: Cant believe I forgot to mention two other v1 products I lost sleep on!

In 2001, I worked at a Dot Com (an older term for “a tech startup”) for a few months trying to build a transactional applet within any email client. Didnt complete for financial reasons!

In 2011-12, I co-owned one more cloud-based SaaS application development for FMCG on Azure PaaS – but, we didnt get to take it to a launch.


Side effects of long Telugu names

September 8, 2017

I’m not talking about the names of Telugu children born in the last 20 years! But the Telugu adults born before that…
…when Telugu parents still were following the tradition of naming each new born with multiple name-components, comprising of names of Gods, grandparents, namelets suggested by uncles & aunts – sometimes leading to this James Bond joke.

I’m sure some of you have one or more Telugu speaking friends with name shorter than –

T(family name withheld to protect the identity of this childhood friend) Veera Venkata Satya Sesha Surya Sai Naga Linga Venkateswara Prasad

My name isnt as long!

Bhavaraju Venkata Krishna Kishore

For the uninitiated, we Telugu people always took pride in writing our name starting with family name. Surname? Whatever.

All children carry the family name. Girls (used to, many still do) acquire husband’s family name when they get married.

Let me go back to my name.

Bhavaraju is the family name I carry. Proudly!

Venkata is the prefix given to all first-born boys in my family (Shortened from the name of the God at Tirupati) – a family tradition.

Krishna Kishore is MY name! Heard that my aunt saw a shop named “Krishna Kishore Bangle Stores” around the time I was born, she thought it was cool!

So, I have a 4-word name.

Fact is, Telugu people realized it early enough (before the days of computers) that long names dont fit in any printed forms.

I was B V Krishna Kishore when I joined in primary school. And that continued without causing any problems for many years.

In Class X exam, my marksheet surprisingly says Bhavaraju V K Kishore. Thats a different form of shortening we did. Cant remember who did that, and why.

Class XII marksheet says B V K Kishore. A different shortening algorithm.

Let me also highlight another Telugu tradition – my friends would call me Kishore. (That’s the last name, you see!) People call each other using the last name – unless disambiguation required something else – if you knew a Srinivas Reddy and a Krishna Reddy – calling out to a Reddy would be ambiguous! We couldnt call the first guy Srinivas either – each class would have a dozen (or more) Srinivas with suffixes – Rao, Reddy, Murthy, Varma, Sastry,….

Until this point, I was in Telugu-land! (The state of Andhra Pradesh)

By the time I acquired my bachelor’s in Metallurgy from a famous college of a less-popular university in the state of West Bengal, I was called KK by all my collegemates.

And, the certificate said “Venkata Krishna Kishore Bhavaraju“. In that part of India, family name goes to the end. Probably the reason for the flip?

I became a little conscious of what I wanted people to call me, and, by the time I joined my first job, I started writing my name as “Krishna Kishore B V“.

I got married – my marriage certificate has my name spelt this way. I got my PAN Card (One of the many ID Cards all Indians are expected to have – only tax paying citizens do!), and my driving license – all with this name.

When I applied for my passport in 1993, I wanted to be very sincere – I wrote my Given Name as “Venkata Krishna Kishore” and Family Name as “Bhavaraju”.

And then came the urge to go to USA. L1 petition – my office provided all documentation for “Krishna Kishore B V” and my shortened name in petition was Venkata K K Bhavaraju!

Visa was approved, landed in USA, but the lady at the Trenton, NJ office who accepted my SSN application wasnt amused! “This aint the same name!”

Cant blame her! Luckily, like most other Americans I met there, she understood, and agreed to move forward.

When we returned to India, I wanted to show my US-returned status, while opening new accounts. Given/First Name – “Kishore”, Middle Name – “Venkata Krishna”, and Family Name / Last Name – “Bhavaraju”. “Kishore Venkata Krishna Bhavaraju“????

Dumb me!! Anyway, life continued for 15 years and Government of India wanted all Indians to have one more ID – Aadhar.

Earlier this year, I got my Aadhar Number and the name matches that from passport – “Venkata Krishna Kishore Bhavaraju”.

And GoI said “thou shalt mention your Aadhar Number to all your banks”.

Now, I’m in a mess!

My name in my PAN, Passport and some of my bank accounts dont match! And unlike the American lady at INS, our banks have computerized systems with no pattern-matching capabilities.

“Aadhar linking failed”!

What do you want me to do?

Option 1: Change my name in PAN card, driving license? Is that possible at all? Guess these are worth probing!

Change my name in existing bank accounts? With impersonal, rule-abiding-yet-incapable-of-interpreting youngsters in the new-age banks, I wont bet on it.

Option 2: close the bank accounts where my name isnt what I want it to be. That is possible. And, easy too.

I have been a smarter parent. Both my daughters have simple “Given-name Family-name” format! No confusion at all! They should thank me after reading this post.

Call to action to all parents out there. Give your kids simple names – one first name, one last name. They will sure be grateful!

If your uncles, aunts, parents, neighbors, and opposition leaders suggest any more names for your child, ignore them, and forgive them!

(P.S.: Make sure there is a last name. I had a friend who didnt have one! And if he were alive, he couldnt have filled up most online forms today!!)


What if I could become a Train-Nomad?

September 1, 2017

When you retire, and when your children are ‘settled’ in their jobs/families, where do you want to live?

Option 1: Live with children. I have two children. So, unless under extraordinary circumstances (such as one of them needing a long term baby-sitter), I could spend six months with each kid. God bless me if one lives in hot, humid Chennai, and the other is in cold Ottawa! There is a high degree of mutual dependency and adjustment, in this option! Attractively unattractive!

Option 2: Live in my own world! In some remote peaceful village, 30-40 km from the nearest international airport. Preferably, in my home state of Andhra Pradesh. Good broadband internet connectivity, a car to drive me around (unless, personal helidrones become safe and affordable), couple of cows (This is India you see!), an easy chair / recliner, 40″ HDTV, within 10-12 KM from a good hospital, fresh veggies & fruits … All this to keep an old man engaged?  Did you read the story of All for a loin cloth?

Option 3: This one is a crazy idea! Why have property? Why live in one place? Why stay with children?

All I need is a place to sit / sleep, some decent food, a toilet, and shower (preferably every day!!) Of course, I didnt forget a power socket to charge the mobile phone, which can keep me connected with the world!

Why not live in trains? Yes – Indian Railways! I love train travel anyway! (Stop Press: Looks like at least one woman tried this before, not in India though)

Book tickets for 2-3 months in advance! Travel from place A to place B (preferably 20-30 hours away), stay for the night in the station dorm / decent hotel nearby, have a great shower, take a train to place C, … and so on. Since I studied in an REC/NIT, I have friends all over the country too! This could even be an opportunity to say Hi to a hundred of them each year?!

And, when you feel like seeing family, take another train!

No property tax / electric bills / maintenance fees, no pain with parking / maintaining a car, medicines / medical help is just a tweet away (hope all subsequent Indian governments continue current practices!), food delivered at seat (may not be great, but, hope some Triggy will begin Swiggy-like delivery of non-IRCTC food someday soon!), no monthly payments for newspaper / milk / ironing / …

All you need is digital payments for mobile, for tickets, for food, and occasional stay! And some loose cash for buying newspaper, or train-water (aka ‘rail-neer’)

Has anyone ever tried the math? Could it work out economical too?

See new places, meet new people, share your life’s experiences with them, listen to theirs…… Possibilities are endless!

Anyone else who has similar thoughts?

P.S.: What about my wife? She just wont subscribe to this – not even in her wildest nightmare!


I have more (unfulfilled) wishes/dreams…

August 14, 2015

Reading / Learning

  • I want to read more technical / management books / blogs – I started with many of them in the last 5-6 years (See – I said I STARTED, didnt complete most of them)
  • I love (natural) languages – would love to learn a non-Indian language. Other than English, I have decent fluency in 4 other Indian languages – Telugu, Tamil, Hindi and Bengali. Of course, knowing Sanskrit helped.
  • I want to pursue higher education – I still feel a little bad being the only (mere) graduate (engineer) in a family where everyone else (other than my kids) have a post-graduate qualification. While I have been learning using MOOCs, that is still byte-sized learning. Wish to sign up for MS, M Tech, or MBA and dream to pursue research.
  • I want to go back and start writing code again – this time, create web applications. Deep within, I still have a crush on GW Basic, and didnt grow beyond Visual C++, DB-Library, ODBC and SQL Server. Still struggling to figure out which newer programming language allows me to write more business-useful code, and less of plumbing code. Create a POC at least!

Sharing

  • I want to be an evangelist (not the religious kind) – advocate cloud computing / SaaS with enterprises / entrepreneurs,  talk about career and life choices with students. Addressed students a handful of times in the last few years, addressed an ISV gathering once on Azure and SaaS. Just not enough – I should be able to speak at 4-6 colleges each year (of course, free).
  • I like to write – am an occasional blogger. Wish I could do more – my thoughts on technology trends, employment, adjusting with loved ones – what it took me to survive in this multi-tenant world.
  • I started translating an old favorite Telugu novel (Vennello Aadapilla) to English. Hope to complete that within next 2-3 months and translate one more old favorite (Aanando Brahma) too! May be, translate Shashi Tharoor’s “The Great Indian Novel” to Telugu too?
  • I would like to make my parents’ research work reach the world – my father died before he appeared for his PhD Viva, and my mother’s M Phil / PhD work on the Literary Values in Javalis (a form of Carnatic Classical Music) are strictly known to us in the family. May be a web site / blog site for each of them?

Fitness / Travel

  • I want to stay fit – cycling? running? Those are the things I keep reading about / exploring on internet, while the TV is showing some silly English movie or playing Tamil film songs.
  • I love to walk – been living with a 30+ year old dream of walking on the beach – 50 odd Kilometers from the northern end of Marina Beach in Chennai, to the shore temple in Mahabalipuram. I dont think this is even a ‘road less travelled’ – probably a road that doesnt exist.
  • I love to drive long distances. Go where most tourists dont explore. (Not quite – ‘go where no man has gone before’) Did two beginners treks with Chennai Trekking Club – to Tada and Nagalapuram. (Struggled with both).
  • I want to travel around India in non-A/C sleeper class trains. For 20-30 days. No mobile phone, no iPad, no Internet – just be with the fellow-travellers.

Career Goals

  • I want to start my own product company – cloud, SaaS. Make a difference to people’s lives. While the technology and product terrain is very familiar, entrepreneur is a word I dont know how to spell.
  • I want to have my own farm house – live there with a few cattle and grow vegetables in my own garden. My mother invested in a large land recently, hope to work with her – though it is 500 KM away.
  • I want to switch to the education “industry” and be able to share all my (nearly) half-century of learning and experiences with the teenaged citizens of tomorrow
Friends and Family
  • I love to stay in touch with my (old) friends and colleagues – unfortunately, it has all been only in the virtual world of social networks – LinkedInTwitter, FaceBook and WhatsApp. Wish it could be in real world too
  • I want both my daughters to learn and master computer programming. I leave it to them if they wish to choose that as a career – but, I loved thinking and dreaming step-by-step instructions. Helped me improve my communication skills – reduced ambiguity.
  • I want to spend a lot of casual time with family. Sing a few songs, play Sudoku, read them a book, assemble a small toy / robot, ..
  • I want to write to my college-going daughter and help her to make great choices for her future. Exchanging a few transactional notes on WhatsApp isnt truly satisfying.

Music

  • I want to learn to play Violin. Started learning last year, and stopped after 3 weekends.
  • I want to play keyboards like my younger daughter can.
  • I want to be a popular (bathroom) singer. A few pieces I recorded in SoundCloud have been well-received. But, looks like I need to learn the lyrics of many more songs

What does this list make it sound like?

  • A scatter-brain?
  • A jack-of-all-trades?
  • A superman?
  • A full-stack professional?

Or, a middle-aged Indian middle-class male, experiencing mid-life crisis? 😦


I have a dream….

July 27, 2015

And since I said it is a dream, I hope none of you shoot me down with comments that it is an irresponsible, stupid dream! Dreams are dreams – even if they dont automatically happen during nocturnal sleep.

I started my primary education early enough – not sure if I was 5 or 6 years old at that time. For various reasons of likes and dislikes about education, curriculum, teachers, studying some classes more than once, and short-circuiting others, I started working in 1991 when I was 24. It was non-stop bored battles with exams all those years.

When I started working, it appeared that there were no more assessments, but only learning and earning! How happy I was, and how wrong! After a few years, I was introduced to true corporate colors – self-reviews, annual performance appraisals, bonuses and promotions. Some more years later, I joined the not-so-much-liked list of ‘entry level managers’. Do unto others what others did to you before! 🙂

It was a constant quest for learning, challenges, recognition, more salary, promotion, (and thankfully) sharing/mentoring.

24 years later, when I look back, some of my priorities dont look relevant for ever.

Fatigue is setting in too. Monotony is here! 😦 Dont feel very relevant sometimes. Feels like I’m a non-playing captain! A coach’s performance is visible only through the performance of his team – fair enough, but, not very satisfying!

Is this mid-life crisis? Or, is this the natural side-effect of working with GenY (or later) – who dont think like me at all – not technically, not in the approach to problem solving, not in the outlook towards future.

24 years of corporate working – most often taking up to 12 hours of my daily life – Monday through Friday – dont I deserve a break?

A small one? May be a month?

In this part of the world, companies dont usually recognize the need for a sabbatical nor ‘offer’ one!

If they cant offer one, I can ‘take’ one – can I not?

What if I could leave corporate life for a short duration?

And travel around India in second class non-air-conditioned sleeper coaches?

Clockwise only – as per Hindu tradition! 🙂

Chennai – Kanya Kumari – Mumbai – Shimla (Or Jammu Tawi) – Kolkata (or Dibrugarh) – Chennai?

That should keep me away from my disciplined wake-up-at-6, check-mails, get-ready, breakfast-at-8, leave-at-0815, reply-to-mails, participate-in-meetings, lunch-at-1300, more-meetings-until-alarm-at-1800, more-meetings-at-home-before-after-dinner, dinner-at-2000, sleep-at-2300.

Just for a few weeks!

And bring me back to reality? 🙂

Either I could come back with a better idea on how else to use the rest of my ‘fit’ years? (Read as make more money as a corporate executive)

Or I may come back with a conviction that I could be useful to someone beyond money?

Start a software product company?

Become a softskills trainer?

Join a professional college as faculty? Or at least a student welfare officer? Or head campus-corporate-relations?

Or, join a political party or a religious organization as a professional ‘dubash’ – the translator? After all, I can (not merely speak, but) think in 5 languages.

 

Dont wake me up yet!

I want to dream more…..

P.S.: strange that I dreamt of a break in December 2013 too! 


First report on our new XUV500 – Cheetah

January 22, 2015

About a month ago, I wrote a post for Team-BHP. It is a well-known site for automobile enthusiasts and owners. Lot of experiences shared, lot of advice sought and offered. Many people like me refer to what actual owners have said before buying a new vehicle.
My reason to write was simple – I bought a new car and I wanted to share my experiences too!
Alas – the admins / moderators wanted in a certain template 😦 Well, almost!
A writeup should mandatorily have a few photos, should not have more than 2 smileys. Likes and Dislikes should have separate sections.

I’m not a professional writer – nor is Team-BHP an official “technical documentation” site. I didnt really have the time / energy / passion to take photos, or reduce smileys!

Nor do I want to shy away from a good practice I acquired some years ago – “sharing”

Here’s what I had submitted them – will be glad if someone benefits from this.

———-

Hi there,

After owning and driving a Honda City ZX 2008 GXI for 6.5 years, 70000KM, I finally took the plunge and switched to XUV 500 W8.

Here’re a few decisions I took – some with my mind, some with my heart!

1) Opted for a W8 – wanted to experience all bells and whistles!
2) Didnt think of W8 AWD – not sure what it could do for me. My daily travel is 15 KM on weekdays, and weekend could add another 20-30 KM on most weekends.
3) I live in Chennai – and speed breakers and non-existent roads havent been a concern for me so far
4) Sure feels a little strange to be driving a big car all alone to office and back. But hope to use all the seats a few times a year when we go out with wife, 2 daughters and in-laws / mother.
5) Opted for a white color (not our original choice – but other than Black and White, all other colors dont have light colored interiors. My wife was particular about it)
6) Wasnt too sure if I should buy a new car in November / December (All the loose talk about cars lose resale value if you buy end of the year etc), but took the plunge. Honda Service Center was strongly recommending I should change clutch assembly in my City.
7) We are thinking of going on a road trip into Karnataka around Christmas. Our previous road trip (in 2013) from Chennai to Waynad via Mysore caused a lot of nervousness & anxiety – with 2 adults and 2 teens in a Honda City staring at frequent, mountainous speed breakers on Bangalore – Mysore Road. That made me think of a vehicle with a higher ground clearance
8) I had surely thought of Ecosport and Duster too, but, did not proceed with even a test drive with either

I had been eyeing the Cheetah for a couple of years now – but, was always told not to go for a Diesel for my needs. But, heart was winning!
I enquired with a friend who has been driving an XUV for some months now and also looked up Team-BHP reports.
All of them turned out to be factual (not 100% positive feedback, but that helped too!)

Sometime in November, visited Zulaikha Motors at Velachery, Chennai and the sales executive Dinesh showed us a showroom vehicle and also took us on a test drive in a W8.
I went cold after that again, but thanks to the sustained follow up from Dinesh, exchanged my old car and placed the order.

Buying was an amazingly smooth experience (barring a few calls from unknown numbers besides the sales executive, each one listing some document needs at last moment). Wish Zulaikha has standard checklists for each step – place order, exchange old car, apply for bank loan, ECS,…

Most unbelievable part of the entire buying experience was the bank loan – arranged by the dealer, with a nearby SBI branch. I was in and out of the branch in 15 minutes flat – time was spent only signing in a few hundred places! (It probably also helped that the dealer’s executive was in a hurry to go to his place of worship on that friday afternoon!)

I was sad to let go of my Honda City on 28th November, Friday evening. (Was actually angry with the whole scheme that I had to let go of a car before my new car was with me)

Received my XUV on 1st December Monday evening. Mr Dinesh was kind enough to deliver at home around 19:30 – saving me a trip to the dealer and the hesitation of driving a new type of car that doesnt even have a number plate (but registered). Car was delivered with Lemons and as garland too!

Went for a short drive to a temple 2 roads away for a short pooja. Well, every God-fearing Indian should do that! Shouldnt we?

That short trip helped realize a few first experiences:
1) High seating position is really good
2) A small mistake of using 6th gear, before realizing that Reverse Gear is elsewhere (Reading a PDF of the drivers manual on Sunday night helped)
3) Unlike my worry, the turning radius is pretty good
4) 1st and 2nd gear arent as smooth as on the demo vehicle. (I was fore-warned on this)

My daughter, who studies at Trichy wanted to see the vehicle. And, I was eager to experience the 6th gear too. My mother was visiting us – and we decided that we’ll head out to Trichy on 6th Dec evening.

Enjoyed the drive and here’re more experiences from before / during / after the Trichy trip
1) When I tried to fill up FULL TANK AUTO-CUTOFF, it accepted about 56.920 litres only. Info showed I had a distance-to-zero of another 90 KM or so before filling up. Arithmetic didnt work out. Fuel Efficiency at that moment was 9 kmpl (entirely city traffic)
2) When XUV was delivered to me, it had 58KM on the odo. When I filled the tank, I wanted to reset the trip meters A and B. Without realizing, I pressed Reset on the main and all three counters were reset as 0. Is this a feature? Am I missing something?
3) My mother, who is around 5ft, and aged 72 found it slightly tricky to get in, but managed to. Guess I may need to go for side step. She said getting into 1st row was easier than second
4) Kept the last row completely closed for now. Only 4 of us travelled
5) I thought the Rear AC button in the front panel impacts the 2nd row – it is only for 3rd row. Kept it on for some time accidentally – but that helped the food we were carrying to my daughter who stays in hostel!
6) Auto-Start/Stop – learnt it on Day 2. Sure is a wonderful feature. Need to master it a little more – when a signal just turns red, or is timed, I like using this feature. But, am unable to decide at other times. Is it OK to have engine shut off for 10-15 second durations also? For example, when I reach home after 7, I need to step out and open the gate before I can drive in. Engine stops for that duration. The auto Start/Stop switch – not sure how dynamic it is!
7) Lights in the car are brilliant and are useful.
8) I didnt drive beyond 125 kmph (peak speed) on our way to Trichy and back. Not sure what top speeds others have tried so far
9) I dont like the engine noise – especially in 1st gear, as I rev up to get into 2nd gear. From that point onwards, it doesnt bother me much. (But then, this is my first Diesel)
10) Tried playing radio – FM, AM, Audio CD, pirated mp3s from a decade ago – all worked well.
11) Bluetooth pairing for voice calls and playing music works extremely well
12) I have a Windows Phone – SMS doesnt seem to work though. Does anyone know why? Or, should I read the manual?
13) Driver Side Auto-roll up of glass doesnt exist – (read it on Team-BHP reviews) – that sure is a pain while driving through each toll plaza
14) Wish there was a most-easily accessible compartment to hold toll receipts. Where do you store?
15) Storage compartments in the passenger side are sure very small (again, luckily read this in Team-BHP reviews) before I opted for it
16) Cooler compartment between driver and passenger – I wish it was taller by an inch. I couldnt keep a 0.5 litre Tupperware bottle in that (and close the lid). Is it good for cans of aerated drinks only?
17) My office security insists on checking under the car and in the trunk each morning (A standard tribal ritual that never made sense to me). In XUV, I havent yet figured out how to open the trunk without using the remote. (Guess I should read the manual again!) Or, isnt there an option?
18) At the end of Adyar (Chennai) – NIT Trichy – Hotel SRM Annexe Trichy – NIT Trichy – Adyar (Chennai) trip over 2 days, my fuel efficiency actually showed 15.6 KMPL. (4 passengers, very little luggage, tyre pressure 33 in rear, 32 in front, full tank when we started, max speed didnt go beyond 125 KMPH) Guess that is good enough.
19) I wish Mahindra (or my dealer) gave me floor mats with the car – preferably free! Or, at least for a price. We started making it dirty already 😦
20) I didnt yet figure out how to use Cruise Control
21) Voice Commands – I need to train myself (and my car)
22) Yet to figure out how to change radio channel from the steering-mounted controls.
23) Wish the central panel could also allow me to type 1 – 6 to access a different radio channel
24) One audio CD got stuck (physically) a few times. We could eject it by merely trying it after 10-15 min. Not sure if that is because of CD or player or a bump on the road
25) I peeped under the driver’s seat. I could see some wires hanging – must be the under-seat light? It is sure an ugly sight to see wires hanging. Didnt have the courage to look under any other seat
26) Auto-rain sensor worked
27) Auto-headlights work too
28) I tried using the wipers manually – with water spray. The spray didnt seem to have any power at all (as compared to my Honday City). Was almost like a about-to-retire-govt-employee-trying-to-get-up-from-seat. (Apologies for that dumb comparison)
29) Biggest surprise on Day 1 was that I could feel something moving near the toe of my left foot. Realized a few seconds later that it was my foot touching the steering rod / column. (Angle of that is definitely different from that in a Honda City)
30) when the clutch is depressed, sometimes the current gear shown in the panel is one lower than the actual gear. Do others experience this too?
31) I remember choosing – synchronize contacts with photo. However, when a call comes in, I dont see photo. Does anyone have a different experience?
32) AC is good and powerful. However, will reserve comments until I experience this in Chennai summer.
33) We tried the navigation (just for the heck of it). It was sure accurate, but mildly irritating. (Not the gender of the voice! LOL) At almost every village that had an elevated road, instruction would ask me to “bear right”. No further comments until I use it in unknown territory.
34) Time to Destination shown by navigation was awful. Looks like the navigation subsystem doesnt understand my current speed / average speed. It somehow seemed to think we were doing an average speed of < 40 KMPH

Overall, after 12 days of driving, I’m sure happy with this beast!
For accessories, I’m thinking of a side step and floor mats. Should I think of anything else?
(Especially when we are planning on a 1000 – 1500 KM road trip into Karnataka, upto Chikmagalur / Jog Falls)
Is there something I could do to smoothen my 1st / 2nd gear shift experience? (It isnt always bad!)

Hope I’d be feeling happier after the next long road trip.
Would love to share more, after some weeks

Until then, wishing everyone happy motoring…

Cheers,
kk

————–

Next article will be on last one month’s experiences – including a 1500 KM road trip!


TOEFL – How to pronounce GHOTI?

September 6, 2014

Here’s part 3 of my original post – each of the posts made me revisit and discover more ‘silly nothings’ about English! 🙂


 

Thanks to all those who stopped by to comment, ask a question, give an opinion or even merely smile at what was being discussed! That’s exactly what I was hoping for.

I have always been in love with Languages – natural languages! I speak 5 languages every day – English, Tamil, Telugu, Hindi and Bengali. I have a decent familiarity with Sanskrit also!

In some sense, I must confess that Sanskrit remains my favorite and English has always retained the #1 slot for the most puzzling language!

As luck would have it, when I started my infatuation with English, everyone around me was in the same boat! Most of us at college were not from the metros, most of us never spoke English before! It was easy for all of us to make our quota of mistakes – without any inhibitions! That’s how we learnt!

  • FUD and Fun were always there – each of us had our own definition of what could be acceptable English! As a young boy from the south, I’d think of having a ‘cool drink’ – while some of my North Indian counterparts would want a ‘cold drink’!
  • When I didn’t know enough about beer, I always assumed it was to be called BEER to rhyme with ‘KEEP’. I don’t still understand why BEER and DEER should rhyme with DEAR or NEAR.
    • But, BEAR doesn’t rhyme with DEAR? (Recall the poem from the previous blog)
  • I was sufficiently confident that I knew my FOOD well – to me, the ‘oo’ rhymed with the ‘u’ in ‘PUT’. One fine morning, my teacher walks in to say ‘oo’ in food is supposed to rhyme with ‘loop’ L Imagine applying the same rule to ‘BLOOD’ (n)

We never knew which pronunciation was correct! Or, should I say right? (Do RIGHT and CORRECT mean the same thing? I was told they aren’t! )

It took many more years to realize that one should refer to a pronunciation key from a dictionary to know how to pronounce a word! How many of us do this?

One of the earliest lessons during ragging period was that it is one’s command over the language that would help showcase capabilities! (Yes – we had REAL ragging period in mid-80s)

Only those who used sit and gossip / discuss / argue for endless hours at the college ‘jhoops’ (informal hut-canteens) would get the jobs faster! They were the ones who could present their viewpoint better!

I had to make some action plans for myself to be ‘accepted’.

Step 1 was to read. Resolution was to read ANYTHING that was printed. (Dictionary definition of ANYTHING usually does not include recommended text books ) Long train journeys and few friends with personal favorites helped graduate from James Hadley Chase to Alistair Mclean to Earl Stanley Gardner to Ayn Rand!

Step 2 was to write – the only person I could write in English was my (imaginary) girlfriend! Until I began writing to seniors who had graduated from college (Graduated, and not ‘passed out’!).

Step 3 was to speak – both one-on-one and in front of groups! Speaking in front of groups took much longer – to muster courage! Natually so!

Have you read Kiran Mohan’s blog at http://kiranmohan.wordpress.com/2012/07/07/just-read-write-and-speak/ ? If you didn’t, please do! Dont just read – practice!

After all these years of reading, a few books are very close to my heart!

  • The Great Indian Novel (by Shashi Tharoor) – a curious blend of Mahabharata and Indian Freedom Struggle. Makes me wish I could write like Mr Tharoor. One’s never too old to dream you see!
  • 1984 (by George Orwell) – besides the story, I love the concept of “Newspeak” that highlights why English needs simplification and how it could be done. For those who are interested, the full text can be found at http://orwell.ru/library/novels/1984/english/en_app
  • Murphy’s Law (compilation) – my Bible, my Bhagawad Gita, my Quran. That’s the set of laws that have been guiding me ‘All is well’ even when things aren’t!
  • Anguished English (a series of books by Richard Lederer) – the book that often makes me stop mid-sentence and wonder – am I doing that mistake?

For those who take their language seriously, I’d sure recommend the last one – amusing, entertaining and thought-provoking collection of ‘accidental assaults on English’.

For example, how would you react if your colleague were to say something like these?

  • ‘I saw you with my wife at the theatre yesterday’ (Would a comma help? How would you rewrite this?)
  • ‘One of my husbands friends told me’ (Punctuation omitted to tease you!)

Recently, there were a few “Gentle Remainders” for community sessions. Sorry sir – I don’t have time to attend ‘left over’ sessions!

Will give you more examples and Indianisms in a week or so!

Until then, happy learning!

P.S.: I recall learning that ‘gh-o-ti’ can be an acceptable spelling for the word ‘fish’.

Here’s how:

  • The letter combination GH is pronounced differently in the words – GHOST and LAUGH! Take the ‘f’ sound from LAUGH
  • The letter O is different in POT and in WOMEN! Take the sound of O from the word WOMEN
  • Listen to the letter combination TI in TIME and NATION. Take up the ‘sh’ sound from NATION

There we go – GHOTI is to be pronounced as FISH!


Next post may be delayed, but sure would love to mention many other things I learnt in / on / with / about / of English 🙂


Microservices Made Easy

Moving from confusion to clarity!

వీవెనుడి టెక్కునిక్కులు

స్వేచ్ఛా సాఫ్ట్‌వేర్, బహిరంగ జాలం, తెలుగు, ఇతరత్రా...

Live Life 5G

Live and Experience the broad spectrum of life

Javalis - Lyrics And More

Lyrics of a few hundred Javalis

crea8ed by Supriya

Marketing, Content Management, & More

Home: sdarchitect.blog

Sanjeev Sharma: My thoughts on Cloud, DevOps, Data Strategy, and Life...

Eric Brooke's Blog

A journey of curiosity and unfinished thoughts

thebluedrive

Along India's Coastline

Cognitio

OS update for the mind

GoodChangeIT

David Tesar's blog

Business + Execution

Thinking business, focused execution

nextbigtwat

Uncovering 2 twats a week in the Indian Startup ecosystem. Nemesis as defined here - http://www.youtube.com/watch?v=aocAU7nW3D8 … Email - nextbigtwat@gmail

Experience DevOps

A hands-on workshop for DevOps culture

josephvargheese

Just another WordPress.com site

Steve Blank

Entrepreneurship and Innovation

Krishna.Ki.shor

From the mind of an ageing tenant, in this multi-tenant world!

Perspectives

"There are no facts, only interpretations.” ― Friedrich Nietzsche