Every new year, some of us friends gang up in someone’s house and spend the night out (31st night). We play games, talk, dance, watch movies and indulge in “intellectual” talk.
This year, we all ganged up at my place. We played a few games, got people to dance in couples, danced in groups, had good food together and generally had a good time with each other. Late in the night, we all watched a couple of episodes (Nosedive & Playtest) of Black Mirror together and reflected our own addiction to social media, ratings and inner-fears. As we were talking about it – there was one bit of analogy that Kowshik shared which really hit me hard (I am paraphrasing what he said):-
“It always puzzled me as to why people get so scared of walking on a 4 feet tall wall. Until I realized that people aren’t scared of the height of the wall, they are scared of what will happen to them if they fall. They don’t know what it feels like when they fall from 4 feet, they imagine it will damage their bodies as much as a 1000 feet fall would. If they “knew” that falling from 4 feet wont destroy their bodies, they wont sweat so much. I know people who have fallen from 30 feet and lived fit and healty. It is surprising how much beating the body can take!”
It hit me hard because I play a lot of things safe in my life – because I confuse the “impact of failing” in those things to be as severe as “impact of falling face down from 1000 feet”. Over the last few years, I haven’t even bootstrapped several activities that I intended to simply because I cant deal with the failure that may come along from simply trying. None of those failures (if they happened) are “falling from 1000 feet” types. Its just that I haven’t indulged in enough “fall-from-4-feet-tall-wall” activities to know that “it will be Ok” (TM). For me falling from 4 feet is same as falling from 1000 feet. So, I would rather not even try.
I say – 2017 will be about trying things out. Falling from 4 feet walls, if you will. My new year resolution is to simply get more comfortable failing – by trying out lots of things.
In Aug this year, I dropped by at the Bangalore 2016 WhatHiFi event. Every piece of equipment that go into making a good home theater was featured in the event. On display were projectors, screens, speaker systems, amplifiers, seating furniture… Everything you would need to build a great home theater. Both desi and international brands were on display, totaling to ~120 brands!!
My older brother Praveen, my friend Murali and I went to the event. It was a three day event and we went on the first day. I have a BenQ MS-506 DLP projector and a Bose Lifestyle 535 home theater setup for a couple of years now. When I walked into the show, I wanted to sample non-DLP projectors and home-theater brands outside of Bose. I had sampled ProFX, B&W, Sony and Yamaha before. I was super-curious to checkout other brands.
First, I saw a 4K 3D projector from Epson. It was fantastic. The price (8 Lakhs / ~12000 $) was too steep for me to consider buying. I then experienced a demo of PSB speakers. Awesome! Again, very expensive. I strolled by BenQ, Triad, Quadral stalls. They all had impressive systems. By the time I came out of the BenQ & Epson stalls, I was clear that I had to upgrade my projector to something Full HD 3D. I was however still not clear as to what projector kind (DLP, LCD, LED) to pick up.
My friend Murali, who was exploring stalls by himself, then called my brother and I to checkout speaker systems from a company called Invention Audio (who of0course had a stall there). The three of us sat there and listened to a few tracks on his system. The experience was way beyond awesome. I have personally never experienced speaker systems render silence between notes so profoundly as these did. Every other speaker (Bose, PSB, Triad, ProFX, Sony) seemed like noise in contrast to the pure-bliss the sound was from Invention Audio’s speaker systems. Praveen, Murali and I walked out of the stall with a clear intention to buy Invention Audio’s speaker systems even if it meant selling our kidneys.
After coming back from the show, I just had to do something about my media room. After moving into my new (rented) house in May, we setup the home theater in the media room. The distance between screen and projector was 140 inches. I had a 320 cm screen available at my disposal, although my BenQ projector was not filling the entire space.
The flooring in the media room had Kota stones and I had one bay window and another wall window in the room. The right wall of the media room opened into a staircase. Obviously the room had a lot of acoustic goofups.
First, I bought a BenQ W2000 FullHD 3D projector. I choose to go with this after sampling a bunch of DLP and LCD projectors. While LCD projectors are cheaper and offer a higher contrast ratio on paper, the quality images projected by DLP projectors is simply fantastic. Especially for movies. Besides BenQ-W2000 supported Rec-709 color palette and offered an impressive 3D projection. I got it ceiling mounted, just like the old BenQ projector I had.
I now had a projector that filled the entire 320cm screen. And it looked Wow! Oh wow!
Next, I invited Sandeep Jawalkar from Invention Audio to visit my house and advise me on upgrading my home theatre. When he visited my house, the first thing he told me to do was to treat my media room for acoustics. He advised me to install a sound-absorbing carpet, hang acoustic panels at the first point of reflection for each speaker, install at-least two bass traps, to “tighten the bass” and get a jute-lining stitched to curtains in my media room.
I sampled a lot of carpet options before settling for carpet-tiles from Interface Flor. I bought three boxes of these carpet tiles and had them installed on the floor of my media room.
The carpet now filled the media room from edge to edge. Once I got the whole floor of my media room covered with these carpet-tiles, I started to notice the dramatic shift in the quality of the sound from my home-theater.
The dialogues were now far more clear than before. Sandeep Jawalkar had told me that this would happen. He had told me that the Kota stones on the floor in the media room was causing too many sound reflections, thereby introducing interference. Convinced that further acoustic treatment would be very useful, I placed an order for 5 acoustic panels and 2 bass traps with Invention Audio.
They arrived a month later.
The panels were made from grated pine-wood and the bass-traps from rubber. They were custom made by Sandeep Jawalkar and his team at Invention Audio. My friend Murali, my brother Praveen and I installed these panels in our house.
Finally, we got them all installed nicely.
Now, the sound in my home-theater is extraordinary. The same Bose speakers sound so much better with acoustic-treatment than without. I have put together a small video review of the acoustic treatment here:
Sandeep Jawalkar also told me about an open-source-software called Kodi, which I can install on an old PC and convert it into a media-center. I did that last week and I am now able to play all my old MP3s and movies directly from the PC. I don’t use any addons on Kodi, just the standard install. Hoping to configure TED and YouTube addons soon.
I am very clear that I will buy Invention Audio’s speaker systems soon. I dont know when, but soon. Sandeep Jawalkar has offered to help me upgrade my home theater in stages so that I wont have to take up a steep investment all at once.
For folks reading this blog: if you are an audiophile or even an audio-enthusiast check out products from Invention Audio. Its a desi company and has products that exceed quality of most international brands.
My wife (Nandini) and son (Advay) had a unique conversation today.
Advay: Amma, is wood made of cloth? Nandini: No Advay: Is floor made of cloth? Nandini: No Advay: Are plants made of cloth? Nandini: No
This goes on for a while. Then he switches gear:
Advay: Is wood man made or naturally present? Nandini: Wood is naturally present, furniture is man made Advay: Is floor man made or naturally present? Nandini: The stone we use to make the floor is naturally available, but we make tiles out of stones and lay them here.
After a while, Advay gets a hang of whats man made and whats naturally present.
Nandini: Now, I will ask. Advay: Ok Nandini: Is table man made or naturally available? Advay: Man made Nandini: Are plants man made or naturally available? Advay: Naturally available…. Now I will ask. Nandini: Ok.
The question he asked next, my wife wasnt sure how to answer.
Advay: Is God man made or naturally available?
Nandini goes into a deep philosophical thought after that. She gives some answer about how idols are man made and how we call the force that creates nature as god and so on. Advay is not convinced by the answer. He moves on with his games.
My friend, Kowshik Narayanaswamy is a rock climber. A passionate one at that. He came to Aarohi Life Education and conducted a session on Rock Climbing for all of us (including the kids). We learned something about it and also did some rock climbing ourselves.
The video below is a documentary on what we learned and the rock climbing we actually did on that day.
My wife (Nandini) keeps coming up with ideas for creating learning environments for Advay. She sources her material from direct observation of Advay, coupled with study of books and blogs about child education. She recently was playing this game with Advay and it was very interesting to watch.
She would write a number on the left and a number on the right and ask Advay to fill the number in-between. I watched with awe, the joy with which Advay played the game and also got his answers correct.
Pretty soon, he got a hang of the game. So he now wanted to turn tables and create puzzles for Nandini.
We were surprised that he asked Nandini to fill up between 0 and 2 !! While he learned about 1, 2, 3, 4 … from his Montessori school, he has understood about 0 from interacting with us.
Nandini later asked him to fill the box with a letter to complete a specific word. He enjoyed that too…
He then challenged her with puzzles
I love that he recognises B as between A & C, just the same way as T comes at the end of CAT. It is really interesting to notice how he is grasping things.
He enjoys playing puzzles, the challenging and the challenged parts.
In the month of June this year, we embarked on a new journey of schooling for our son (Advay) & ourselves. We got him into Aarohi Life Education, an open-schooling campus near Hosur.
Our friends Kowshik & Srilakshmi are partners with us in this journey. Their daughter Avani is also going to Aarohi this year. Every alternative week the mothers set off on a train journey with the kids to Aarohi.
He is having a great time at Aarohi. He gets to indulge in anything he chooses and he is totally loving it. Sometimes he paints on the walls with his friend Avani
Sometimes he is out digging in the ground
Sometimes he paints on paper
And then back to walls 😉
He gets to follow where ever his curiosity takes him
He explores music instruments once in a while
And carpentry / craft too
While Nandini goes with him to Aarohi every alternative week (they go on Monday and come back on Friday), I plan to visit every once in a while. The last time I went, I personally enjoyed the evening music jam. I think it is a cool way to feel music as it gets created out of everyday objects and proper music instruments as well.
In addition to friends he has near home, he now has a lot of new friends that he can learn from, play with, fight with, cry with, laugh with, work with, plan-his-days with. Literally be anything with. In a space of total freedom, he is learning from whatever comes up for him. We are totally loving the Aarohi experience and all that it has to offer.
Oh yes, he completed 5 years in June. Happy birthday kiddo.
Have a wonderful childhood. Explore your world at your own pace. We love the world that we see through your eyes.
This April, a friend of ours (Srilakshmi) hosted a workshop at her home in Channapatna. We learned about what goes on behind the scenes when the famous wooden toys are made there. Mr. Ravindra, an artist and teacher who has been making toys in Channapatna for the last 30 years, offered to coach us on the art. This video is a short documentary of what we learned and accomplished on that day.
Since 2003, I have been conducting corporate training programs on various subjects like Qt, OpenGL, VTK, GCF. At one point I was even teaching Linux Kernel and Device Driver Programming, thanks to my employment at Linux Learning Centre.
Over the past 13 years, I have been able to observe certain meta-data about the training that I personally offer and also the training that I have attended as a participant.
World over, technology training (more specifically training on programming languages, APIs and frameworks) has been following a certain pedagogical style. I don’t claim that every single training offering in the world is following only this style, but by-and-large one can notice this template everywhere.
Trainers often prepare slides that explain ideas, concepts, design elements & API. At the end of each logical bunch of slides, they showcase an example program that demonstrates the application of such ideas, concepts, design elements & API. The participants are then handed over a partially written code on which they have to apply their learning in order to solve a problem.
This model works great! I have been using it in a lot of training programs myself. For instance, in the recently concluded training program on OpenGL @ Havelsan, Ankara; I had put together slides that explain various concepts & techniques in OpenGL. Each logical bunch had an example program & programming challenge. I have used similar models for Qt training even, for example with Mindtree.
This model of training is perfect if the trainer doesn’t already know (or cannot know) the audience profile, the kind of applications they care about and the challenges they are facing at their work for which they are sourcing the training. If the trainer does have access to this knowledge, then this model of training falls short of fulfilling expectations.
Since 2011, I have been conducting training programs @ Cadence, Noida.
A little bit of history: Back in 2007, I was working as a consultant for Taray Technologies, Hyderabad. I worked with Ravi Vedula‘s team to help them make use of Qt 4.4 for creating a GUI for an FPGA editor called 7Circuits. For that era (perhaps even now) the GUI was simply off-the-charts. It showcased features and had the looks that most EDA tools couldn’t even dream of. I concluded my work with Taray by 2008, but the team continued working on the FSP product and made it stronger. In March 2010, Cadence acquired Taray & 7Circuits became Allegro FSP. Ravi introduced me to Vikas Kohli, Sr. Architect at Cadence sometime in April/May 2011. Vikas was excited about using Qt for a lot of other products within Cadence and thats how my association with Cadence began.
Initially I started working with them on 1-2 day consulting visits where I would basically help them with code-samples on how to solve specific set of problems that Vikas’s team was facing while using Qt. Later-on Vikas introduced me to other teams in Cadence. Over the last 5 years I have conducted 7-8 training programs on Qt, each of which had 15 participants.
Experiential Training – A brand new approach
Each training program at Cadence had its own combination of course contents & intention. So I did not have the luxury of using a common set of slides for all training.
Last year, when I was called to conduct a 4 day training program for Vikas’s team @ Cadence once again, I decided to take a brand new approach to training. Over email, I had conversation with Vikas and his team to understand why they want the training. Specifically, I wanted to know
What challenges they are facing with respect to usage of Qt within their applications
What are their expectations from the training itself?
A brief description of the applications they are building, so that I could compose resonating examples and programming challenges.
As I started to put together all of the data I received as answers to the above, I figured that the team wants to get trained on
Qt’s Object Model: Deep dive into signals / slots, the meta-object system & events sub-system
QtQuick & Mixing QML UIs with Widget UIs
Now, instead of “assembling” slides for the above topics – I decided to do something radical. I came up with a plan and proposed it to Vikas. He loved it and wanted to experiment with the new approach.
What I came up with was this: teach all of the above concepts in the backdrop of a project called “Google Drive Client App”. The idea is to have participants in the training program focus on building a desktop-client for Google Drive, using which they could browse/upload/download/update/share content on their drive. While the app is not something that they would ever (?) want to develop within Cadence, it does bring to surface many challenges that they would face while working on their projects.
With this approach, the participants are no longer focussing on understanding the API OR remembering concepts. They are focussed on building a fully functional app, while making use of mentoring support available from the trainer to get past challenges that they will face.
As a part of this application, the participants learned about
Using the Network module in Qt (specifically QNetworkAccessManager and friends) for issuing calls to Google APIs.
They would learn how to structure an application that deals asynchronous function calls
They would learn how to send and receive large byte-arrays (while uploading and downloading files)
Using QJson* classes for composing and parsing JSON documents
Putting together a custom Jobs or Tasks framework for handling background jobs
Such has fetch user info job, download folder structure job, upload a file job and so on
Model / View framework in Qt
How to dynamically build tree models to reflect folder structure of a user’s Google Drive
Building sorting and filtering capability
Using delegates in QAbstractItemView subclasses for customising item appearance and interaction
Building models for usage in QML
How to store persistent settings using QSettings
Building UI using QtWidgets & QML & mixing them both in a single application
Running jobs in threads
While participants actually learn all of the concepts & API, they do so in the backdrop of a project that is distinct from their daily work. There are several benefits to this
When a developer works on a single project for a long time, he/she develops perceptual constraints that hinders new learning. A change of project can sometimes be very useful.
Building a fully functioning app, gives a sense of purpose in the training. It makes the training more fun & worthwhile.
Since all the programming challenges are attempted in teams of 2 or 3, the training reflects a “real” working environment for the participants.
Not only have the participants learned the concepts & API, they have also learned how to use them in a “real app”.
Results & Feedback
Before going to the program, I created a group on KitApp PreSocial Messenger and shared QR code of the group with all the participants. Participants scanned the QR code and hopped on to the group. From Day #1, all of us were in a single chat group (without having shared any private social ids like phone number) and were able interact with each other. At the end of each day I would send a feedback form to the participants asking them how their experience of the training was. Here is what they had to say
Looking into the future
I think there is value in offering this kind of experiential training. Participants stand to complete the training having “experienced Qt” rather than just “hearing about OR knowing about Qt”.
While this model of training clearly has advantages, some customers may not prefer it for reasons like
They cannot share any information about the kind of applications their developers are building
They cannot wait for 1.5 months to source the training. (Because I typically take 45 days to put together a unique project & slide-deck for every customer depending on the kind of work they do)
They are unwilling to pay the premium price that I ask for such customized training.
However, I am noticing that increasingly customers are willing to wait the time and pay the fees for such training; because they clearly see a value.
Training using Open-Source projects
There are so many open-source projects that use one or more of the frameworks and technologies I teach. For example, I could pick one or more projects in KDE and teach Qt concepts in the backdrop of those projects and have the participants fix bugs & submit patches to KDE applications.
Training using customer projects
Wouldn’t it be cool if we could train participants by having them directly work on their projects as they learn concepts and API in the training?
Of-course each of the above plausibilities present their own set of complications. But, I think its worth a try.
Since completing my Vipassana course in Jan this year, I have been trying to scrape time to practise atleast once a day, if not two (like they suggest). The idea is to find a place at home and practise Vipassana for a period of 1 hour, twice a day (morning & evening). I have been mostly regular with the formal practise. In addition to that, I meditate during my bus journeys, long drives, traffic signal pauses (which can be 5 min + in Bangalore). Something inspired me to go on runs, three times a week, and practise meditation during the run also.
While my meditations are improving, it has not been impacting me much in my daily living. Infact I have been noticing that I am more angry and irritable these days than ever before.
I was sulking about my lack of progress with Dr. Sudarshan Rao (he introduced me to Vipassana in the first place). He told me that deep & noticeable progress in Vipassana takes time. And that I should continue to practise with faith that things will fall in place. In the meantime, I shouldn’t get too caught up with “goals”. The whole point of meditation is to learn and practise being in the present-moment and not be chasing a non-reality. Non-reality in my case is the idea that I will be peaceful and emotionally stable all the time. Thats NOT how I am right now. So meditating to CAUSE that is chasing non-reality.
He shared with me an article that made a lot of sense to me and has given me a new opening to continue practising meditation. The article asks us to meditate with intentions, but not goals. As Ed Halliwell rightly puts it in the article, one cant force sleep to happen. One can only create conditions (turing off lights, lying down on the bed etc..) for sleep to show up gracefully. Similarly the one cant force peace & emotional-stability to happen – one can only create conditions for such realities to show up by the practise of meditation. Those results will show-up by themselves gracefully. Until then, one has to simply note whats happening in the here and now, within the framework of one’s body AND without resistance.