Saturday, September 10, 2016

My first foray into Argentinian Tango

Hi all

I am an Associate Bronze level student at the Arthur Murray Cambridge Center. Joined Arthur Murray in January 2016 and have realized how intellectually stimulating and fun ballroom dancing can be in a very short span of time.

Being an Indian, I've been exposed to a lot of dancing via Bollywood movies. Hence, the Rhythm style came naturally to me. As Rhythm dances are placement dances, they are also easier to practice at home. For those who don't know, there are four Ballroom styles - Standard, Latin, Smooth and Rhythm. Standard and Latin are the international versions and Smooth and Rhythm are the American versions. One of the biggest differences between Standard and Smooth is that you have a closed position in Standard all the time and in Smooth, you can have open or closed position - which allows you to get more creative with your patterns, style and expression. From what I understand, Latin and Rhythm dance techniques are divergent (but I could be totally wrong here... this is just based on the impression/understanding I've gotten so far.) Another difference in International and American styles is that you dance the International dances with straight legs and the American styles with knees bent. But long story short, I learn the American styles and it's easier for me to do Rhythm styles. To improve my Smooth technique,  I am performing a Tango show case on 23rd October and doing a couple of Smooth dance performances (Waltz and Foxtrot) at the same event. That's my mini-project at the moment.

One of my fears has been that I wouldn't get enough practice for the event. So when a friend, Angie told me about a Tango class not far from home, I decided to check it out. It turned out to be an Argentinian Tango class. Argentinian Tango is not strictly ballroom and not the same as ballroom Tango. So the class could have gone south for me, but turned out to be a blessing instead. Today's session had two parts - first, a lesson by an Argentinian Tango World Champion Lorena Gonzales Cattaneo and her partner Gaston Camejo, and second, a Milonga.

Lorena won the 2014 Argentinian Tango World Championship with a previous partner. Her current partner, Gaston has been dancing since forever as well. They flew to Boston just today and are touring the US. The lesson with her and her partner was awesome. Everyone else in class was much more advanced than me - people who have been learning Argentinian Tango for 10 years, 12 years, 20 years etc. Btw, they all were calling it Tango and not Argentinian Tango. So in Argentina, you just call it Tango! :)

Lorena actually spent 10-15 minutes teaching me just how to do the basic Argentinian walk properly. So honored to learn from a World Champion! :) :) :) Gaston was helping the other students with their technique and the advanced patterns that he and Lorena taught us all.

Here's what I learnt from today's class and just talking to people in and after the Milonga:

1. The embrace: very informal. You use forward pose by keeping your weight more on the balls of your feet. Your heels are still on the ground, but the weight is more on the balls and the toes. This allows you to lean into your partner. Your energy is upwards all the time (same as ballroom btw) and your axis is up-forward-and-straight. You maintain the upwards energy and the axis as you move forward, backward, sideways, as you turn etc. You wrap your energy around your partner. This applies to both the lead and the follow. The forward pose here is in contrast with ballroom Tango, where you keep the weight more on your heel and your axis is tilted more to your left. The axis and energy both needing to stay up and maintained are common points in both Tango varieties though.

2. Character and Partnership: Argentinian Tango is a dance of improvisation. The lady never learns patterns. She learns to follow. The lead learns the patterns. But the dance is always improvised. He doesn't rehearse any choreography. He can change the speed, direction, or anything else about his dance at any time and she has to follow. The movements are super subtle - e.g. he might lead her to change her body weight from one foot to another. And she has to understand and do it. Even the basic walk step starts with him intending his direction of motion with his body and her reaching in the intended direction. And then them stepping together in that direction. He gives her the energy, she receives it and responds accordingly. There are instances, where he might give her energy and allow her room to get creative and decide how she wants to respond to that energy. And in that case, she might respond by doing something interesting or creative and he has to respond to that. So in that case, he's allowing her to lead and he follows. It becomes a dialog. The only other place I've heard this happen is in Latin (in Egor's documentary). Not sure if other ballroom dance styles allow for it.

3.  The Argentinian Tango Walk: The basic backwards walk can be broken down into parts:

i. Anticipation
ii. Step

Anticipation: The first part is where the lead creates the anticipation with his upper body by giving energy. She respond by what we call reaching in Ballroom. She reaches her leg from her waist down in the intended direction.

Stepping: The second part is where they step together. This is where the common axis and hence each partner's axis moves in the intended direction.

The difference with respect to Ballroom Tango is that in Ballroom Tango you have 3 steps:
i. Reach
ii. Step
iii. Collect

After getting 10-15 minutes personal time with Lorena and further reflection, I realized that they were clubbing the second and third steps (Step and Collect) into one. Lorena gave me a lot of pointers. One of your feet is always the base foot and the other foot is always free in Argentinian Tango. Your weight is always on the base foot. So when you step, you actually push off the base foot in the intended direction by utilizing the energy that the lead gave you. As you collect, you relax your knees, but you reach upwards (i.e. your energy remains up and high) and the free foot becomes the base foot. The other foot becomes free. Relaxing your knee allows you to absorb the shock of the weight transfer without adding clunkiness (i.e. makes it smooth) to the motion. The forward pose (i.e. totally leaning into your partner) allows you to feel the speed of motion and match it.

Lorena practiced the walk with me and it became easier for me to try it out with a couple of other people. The shifting of weight from one foot to another was also easy to get. The motion is like a subtle upward hemispherical arc. (That's the only way I can put What I did not understand was the sideways sway. One of the guys tried it with me. He gave me the energy for it, so I anticipated the direction of motion, but I couldn't figure out how the step bit worked... i.e. how to translate that energy into the step. Hopefully I will figure that out in future lesson(s). One of the guys said that I would get hooked! :)

There was a lady, Jennifer, who was selling Argentinian Tango shoes there. She used to teach Argentinian Tango before and had a studio. She told me that Argentinian Tango is like meditation. You are always focused on your partner, trying to listen/feel what he's communicating and hence have to concentrate a lot. And to be honest, it did feel like meditation. I was so focused the entire time I practiced the basic walk. I had to close my eyes to feel the lead.

Lorena and Gaston taught a pattern that required him to turn her. In this again, he gave her the energy to turn and she turned. And when she turned, her entire axis remained stable. So did his. They demonstrated that. They demonstrated how it's better to turn fully rather than just turning the upper part of the body. Turning fully allowed them a better range of motion. And their arms remained stable - did not go wonky backwards or forwards. Another pointer they gave was to use their back to help with the turns. I'm not sure I got that part. The extra patterns were really hard for me to understand - me the beginner. But I could understand just as a Ballroom dancer, the core principals ruling the dance. They also said about practicing the patterns in a small space. I did not understand their explanation about using space to one's advantage tbh.

After the class, there was a Milonga, - kind of a practice party where people were practicing their Argentinian Tango moves. I practiced the basic walk with 2-3 guys. They were very kind and understanding. The hardest part was the hold. The Argentinian Embrace is not my cup of tea. Too embarrassing even with friends. So I just held their hands or on their chests. Anyways, there are 3 kinds of Argentinian Tango music:

i.  Tango
ii. Milonga
iii. Vals - has a Waltz rhythm. I recognized it in one of the songs. Jennifer told me that it was almost Viennese Waltz rhythm and I believe her. I could totally do a Viennese Waltz to that song.

Honestly, I've forgotten the difference between the first two types. I do know that the first one is the more commonly played version. The second one might be more lively. Dunno...

Anyways. Lorena and Gaston actually did two dance performances for us, which I recorded. And then... guilty pleasure - I bought a pair of Argentinian Tango Stilettos from Jennifer. :grimace: :grin-and-bear-it: :) :) :) I've added a picture!

Also here're the links to Lorena and Gaston's performances:


Hope you enjoy them! I ended the night by chatting with two of the dancers. We were comparing and contrasting Argentinian Tango vs. Ballroom - our experiences, trips to Argentina and more! Fun night!!!! :) :) :)

But more importantly, I ended it with an important realization. Argentinian Tango is the best way for me to improve my lead-follow/partnership skills. I have been agonizing over finding exercises that might help me be a better follower. In this dance, I have no choice but to follow. And as it is a dance of improvisation, I cannot anticipate my lead's next motion. I just gotta follow. Soooooo, I gotta ask my instructor to teach me Argentinian Tango! :) Happy Dancing!

Saturday, December 5, 2015

Scaring off Boston drivers!

I have never driven as many times as I drove today. I wouldn’t have dared before. I guess the Maine trip did boost my confidence in driving in general. I did make mistakes today for which I apologize to all Boston drivers! I hope that you didn’t have to curse too much!

I felt much more comfortable driving on Storrow drive and Memorial drive today than before. The hardest bit was when I crossed the Charles river over Elliot bridge. That intersection is horrible. The lanes are not easy to follow, especially at night and I apologize to the taxi driver whom I almost cut off. I was extremely frightened and angry that I could not figure out which lane to go to. This is why I always look at my route 3-4 times on Google Maps before I go anywhere. I prefer knowing where I am going next. There are other scary places like Assembly square and the intersection of Fellsway street and Mystic Valley parkway in Medford that I completely hate. Who the heck creates a 5 lane intersection? It is the most annoying thing to encounter! You have to figure out which lane to go and switch lanes accordingly in a very short time in fast traffic. :(

Among highways, I-95 is comfy to drive on as it has local crowd. Never driven on I-90 so can’t say anything about that. I-93 is scary. It has inter-state traffic and people are aggressive. You get tailgated if you're not going fast in the slow lane. Smaller routes like route 2 and route 9 are more relaxing to drive on. Highway driving is of course much easier than city driving in general.

Today, while driving, I just wanted to leave the car and come home. I usually avoid driving as much as possible. I seriously hate making scary mistakes while driving. It's not the kind of stress I want to deal with. But I was grateful that I had to drive. It gave me a chance to practice. Thank you David and Clarissa for giving me a reason to drive. In the end, the best policy is to take a leap and deal with the fear!

Wednesday, November 11, 2015

Creating a Node.js web application from scratch Part 2

This is a continuation of the blog post entry Creating a Node.js web application from scratch Part 1. In that previous article, I told you how to create a simple Node.js application and how to do the routing. Now, let's work more on the front-end.

Step 3 - Add Jade Views

Now, you will add Jade views to your application. Jade is an HTML templating library that helps you create HTML views with minimal effort. First you need to tell our application where to find the Jade views. By convention, Jade templates are created in the views directory. And that's what you tell your application code in app.js.

Next, let's add the index.jade file. Jade is capable of parsing HTML tags. So you can use plain HTML in a Jade file.

This means that you need to tell your routing code in index.js to render index.jade for the root path. 

Next, you need to add the Jade library as a dependency for your app.

Now you can run npm install to install the new dependency, then npm start to start the app and test the result.

Step 4 - Make It Pretty!

Now, it's time to make your app look fancy! You need to tell the application where to find the stylesheets. Stylesheets, Javascript files, static HTML files - i.e. all static content goes in the public directory by convention. So, tell your application to use the /public directory to look for static files.

Next, add the style.css file. This just paints the application background gray.

For kicks, update the Jade file to use actual Jade templating code. As you can see, the link tag is used to include the stylesheet.

Now, restart your application and hit http://localhost:3000 to test out the result.

And there you go! It's gray! And we're using a real Jade template. This is just the beginning. You can do many many things with your application - connect it to the database, create end-to-end use-case flows and what not. But with these blog entries, hopefully you've successfully launched your endeavors!

Happy coding! Cheers! 

Creating a Node.js web application from scratch Part 1

My team member, David and I submitted a web application for the Blumixathon. This was David's very first web application. He had many questions. To make things easier, I created step by step screenshots of the bare bones beginnings of our app and used them to explain the process to him. Like David, others could benefit from the step by step explaination.

We created our web application using Node.js, Express.js, Async, Jade, HTML, CSS, Bootstrap, Javascript, Cloudant NoSQL DB etc. 

So here is the step by step explaination.

Step 1 - Create Basic App

This code sample shows a very simple application server written using Express.js. The application server, when started, listens for HTTP requests at port 3000. When you access the application using a browser, it shoudl return the message 'Hello Prachi'.

You also need to write a package.json file. This is the configuration file for your Node.js application. It allows you to configure details such as the application name, version, description, how to start the application, the Node.js libraries that your application uses, the Node.js engine to use and so on.

First, run npm install to install the dependencies that your application needs. Next, run npm start to start the application.

Hitting the URL http://localhost:3000 in a browser, shows you the very first resopnse from your application.

Step 2 - Move Routing to Routes Directory

The next step is to move the routing to index.js and use the Express.js Router. Instead of telling your server what to do when a request for a certain path comes in, you tell your server where to find that information, i.e. index.js. Generally, the convention is to keep the routing files in the routes folder

At the moment, you only have one route. But you can add more as needed. To verify that the routing is working correctly and requests are being handled by Express.js, change the response message for the root path to 'Hello David!'.

Restart your application from command line and here's the result.

In the next blog post entry, I will show you how to add Jade views and CSS to your Node.js web application. Note that these blogs are meant to help you create a very basic web application - only the very basic requirements. For complex requirements, please refer to formal Node.js documentation.

Wednesday, November 4, 2015

Is flexbility really necessary?

An annoying feature in Git Scm is the ability to execute a task in multiple ways. For example, you can create a new branch using either of the two commands:

i. git branch <new-branch-name>
ii. git checkout -b <new-branch-name>

The second option gets executed more frequently as it involves creating a new branch and checking it out as well. The first option only creates a new branch.

Another similar example is the git pull command. The git pull command is equal to a git fetch + git merge. While this provides more flexibility, it often means that git pull gets executed more frequently than fetch + merge. 

It would be interesting to see examples of cases where one only needs to fetch changes, but not merge them or when one just needs to create a branch without checking it out.

Tuesday, November 3, 2015

Understanding Pylint Warnings

I have been fixing pylint errors for a new codebase and trying to understand what the pylint errors, warnings, refactor-suggestions and so on mean. If you run pylint for your Python programs, you might’ve encountered one of the following warnings:

Dangerous default value [] as argument
Dangerous default value {} as argument

I found an article that gave a simple example to explain why. I read their explanation and tried their examples.

>>> def foo(x=[]):
...         x.append(1)
...         print x
>>> foo()
>>> foo()
>>> foo()

>>> def foo(x=None):
...        if x is None:
...            x = []
...        x.append(1)
...        print x
>>> foo()
>>> foo()
>>> foo()

I still couldn’t understand what it meant. I re-read the explanation. And then it hit me. There are 2 factors responsible for this behavior:

  1. Python has mutable and immutable data types. Dictionaries, lists, sets, etc are mutable. Strings, floats, integers, booleans etc are immutable.
  2. Default arguments are instantiated as objects during function definition time

If you invoke a function without any argument when its default argument value is immutable, the default value itself does not get updated within the function. It’s immutable. And the same immutable value is used as a default argument every time you invoke the function without any argument.

If you invoke a function without any argument when the default argument value is mutable, the default value does get updated within the function as it is mutable and can be changed and the same default object is used every time you invoke the function without any argument.

Thursday, April 16, 2015

My favorite Kindle Unlimited books

SPOILER ALERT: Contains book spoilers. Please do not read the book descriptions if you have not read the books before. You don't want to kill the suspense.

I read a lot of fiction. So when Amazon launched Kindle Unlimited, I immediately got the subscription. You can download upto ten Kindle Unlimited ebooks at a time. Some of them are big favorites of mine and I have not returned them. I don't want to forget their names as I want to be able to read them whenever I want randomly. And as I said before, I read a lot of fiction. So I may forget their names even if I remember the storyline.

Today, I got an idea. I'll blog my favorites. This way I can return them and stop feeling guilty. :)

So here goes:

1. Breakthrough and Leap by Michael C. Grumley: Breakthrough is a sci-fi/thriller. Marine Biologist, Alison Shaw has found a way to talk to Dolphins. John Clay works in the investigations department of the U.S. Navy and is trying to figure out why a ship's position changed by 15 miles unexpectedly. When he and his partner, Cesare use a probe, the probe is lost, but not before the video records a strange ring. John takes help from Alison's dolphins to figure out the mystery... which turns out to be a worm hole created by aliens who are trying to syphon off our water to their planet. In the second book, Leap, Clay and Cesare are trying to figure out why a Russian sub is parked in Brazilian waters and why a Chinese warship has landed in Guyana? Turns out to be more sci-fi, more alien intervention and more adventures. :)
2. Departure by A.G. Riddle: This is a very inspiring book. It's focus is on 4 individuals who get pulled into the future by their future selves who have made mankind make major scientific leaps. Their future selves want them to change the past to avoid an impending war... makes me think of the possibility of parallel universes. It's super cool!
3. End of Secrets by Ryan Quinn: This felt a lot like an artistic piece of work.... felt like a war between the good and the bad. The rich and successful playboy Rafael Bolivar, has an idealistic view of how things should be just like a painter. Him and a bunch of artists, who keep on disappearing one by one. And the villain is... ONE corp who's secretly trying to gather every piece of information about every human. CIA agent Kera Mersal is working undercover as a reporter for an undercover agency to figure out why and how the artists are disappearing. Turns out that her boss and organization have gone rogue and are in league with the villains. The book creates a lot of suspense and nail biting moments as you're trying to find out the truth. What's going to happen? There's blood involved. And of course the unanswered question... what about the future? So what if the revolution succeeds? Will that change things in the long term? We can't win the eternal war against our inner demons forever. There is a good chance that might loose popularity over time. The truth is harsh and we are not emotionally equipped to deal with it all the time. Sometimes, an illusion can be our saving grace.
4. Guardians of Stone, Fountain of Secrets, The Lost Chalice  by Anita Clenney: These 3 books form the 'Relic Seekers series'. Kendall is a gifted relic seeker who can sense emotions, events, people, fact, information etc about any object by touching it. She is supermodel material, but not very social. And she's got two sexy colleagues. Her boss Nathan is a billionaire who has a huge relic collection and also happens to be her long lost childhood friend Adam. He just doesn't remember it. And he's got superpowers of his own which he keeps of thinking of as a curse. Jake is a security expert and takes his responsibility to protect Kendall seriously. And he can't keep flirting with her either. Together, Kendall, Nathan and Jake go on magical adventures to find and protect the powerful historical relics - the Spear of Destiny, the Fountain of Youth and the Holy Grail. They're being helped by the Prottetori who have been protecting four historical relics among many other treasures forever. And the villain is... the Reaper who used to be part of the Protettori but betrayed his brotherhood and who also turns out to be Jake's dad. FYI the Protettori folks have been around for hundreds of years cause they keep on drinking from the Fountain of Youth. I wonder how the Reaper stayed alive all this time considering that he didn't even know where the Fountain of Youth was being protected until the very end of the second book. And did I tell you that Kendall, keeps on having visions of King Arthur, Guinevere and Lancelot in which she looks awful lot like Guinevere, Jake looks exactly like Lancelot and Nathan appears to be King Arthur. Sometimes Jake and once even Nathan share her visions. Kendall suspects that the three of them are re-incarnations of the two knights and their lady. No wonder she feels such a deep bond with both of them. And no wonder Jake and Nathan keep on worrying about each other even though they drive Kendall crazy with their constant bickering. If there's a fourth book ever, it will be about the Tree of Life which is the fourth relic. That should be fun. If you liked Lara Croft movies, then you will love this series.
5. Cyberstorm by Matthew Mather: This is another ultra cool book. It tries to show us a New Yorker's experiences when the country's entire infrastructure is broken down by foreign entities by breaking down the network and by creating a Cyberstorm. People are fighting for food and water. There's no power or heat and a huge storm's hit New York. The book shows us how dependent we are on these systems for our survival.

And now I can return those books and get different ones!  ;)