05 Jun 2012
We have been asking for an online Adobe Store (for India) for years, finally it is here - http://shop.adobe.com/in.
I am sure, Adobe would soon realise that they should have done it earlier. Anyway, it’s better late than never.
Thanks to everyone in community and at Adobe, who pushed for this.
14 Oct 2011
(Image Courtesy: WikiMedia)
Dennis Ritchie passed away couple of days back (on October 8, 2011).
As Tim Bray has written summerised, this world would have been different, if Dennis Ritchie had not created ‘C’ and helped inventing UNIX.
I don’t know, if I would be what I am today without ‘C’ programming-language — the first programming language I learnt, used to solve problems, and wrote programs.
These days, I don’t write pure’C’ code except when I am debugging something or in need to write some utility executables. But UNIX (in some-form) is part of my day to day life.
Thanks to you, Dennis Ritchie Sir. May your soul rest in peace.
I regret for not thanking you when you were alive. Why we don’t do that when people are alive?
06 Oct 2011

[Image Courtesy: WikiMedia]
When I woke up earlier today, my wife told me about Steve Jobs’ death (on October 5, 2011). I was speechless and really didn’t know what just happened. I am still thinking about Steve Jobs, and whatever he has said (quotes) I remember.
Steve Jobs’ influence and contribution is not limited to Apple Computers and competitors, it goes beyond — design, technology, product development and many other communities/disciplines.
He showed a different way to design and build products.
He has inspired me everyday of my life since I came to know him, probably some years before I started using Apple computers. I have repeatadly read and watched him talking/saying/presenting.
I have told his story to many folks over the years, and every-time I was motivated (by just talking about him).
Steve Jobs is an idea. He would always be with us.
12 Sep 2011
This post is dedicated to people and companies, who allowed me to work with them. They hired me when I was nothing.
I messed up so many times, yet they kept supporting me. I was not up to the mark, yet they were optimistic. They told me the truth and helped me grow to what I am today.
In last one decade, hundreds of people influenced and inspired me. It would take days to write their names, I would probably do that one day. Thanks to every one of them
I can’t imagine, if I would be what I am today without their trust and support.
Here is list of companies and people (managers, leaders, mentors), who trusted me and allowed me to work with them. I am very thankful to them for everything they did.
Tata Interactive Systems
- Vivek Kashyap
- Pavan Kota
- Anubhuti Kashyap
- Ashutosh Pathak
- Nimpee Kaul
- Nikhil Puri
- Rohit Sharma
- Albert Lewis
- Vikas Dwivedi
- I. V. Nagendra
- Victor Grigorieff
- Vidya Murti
- Lauren Park
- Ramanarayanan Krishnaiyer
- Susan Lally
- Kari White
- William Taylor
- Manish Jethani
Yahoo! Bangalore
- Vijay Ramachandran
- Sapna Chandiramani
- Raghuram BK
- Hemang
Mixercast
Allies
- Abdul Qaiyoom (friend, mentor and brother)
12 Sep 2011
Most of us have or have had this syndrome “I need X to do Y”.
- I need to join X course to learn Y
- I need to X training to start doing Y project
- I need a Laptop to start programming Python; Desktop doesn’t make me productive
- I need an iPhone to start learning iOS programming; Simulator doesn’t make it feel real
- I need to join Gym to workout; Workout at home doesn’t work :-)
Get over with it this syndrome:
- Start learning/doing as soon as you get curious about anything, we don’t have to wait to do X to start doing Y by ourself.
- We can always do X, but who is stopping us from starting with Y?
- Wouldn’t it be better to get our hands dirty and try to learn more about Y by ourselves?
Eventually we have to do it by ourselves, doesn’t matter if we do X or not. It is more fun and engaging when we do Y by ourself; it is also a litmus test, if we really want to do Y.
Discipline and Passion matters. I wish, I had more of these in me.
12 Sep 2011
Illusory superiority is a topic of psychology, and it is considered to be one of many positive illusions relating to self.
I am not a psychologist. This blog post is based on my observations about this topic in context of coginitive tasks and something highlighted by Dunning-Kruger effect (Research - PDF).
In my experience, if the culture of place, we live or work doesn’t provide enough challenges and competiton (validations), it’s so easy to get dilusional about our actual competence and have illusory superiority.
In my own experience, we stop learning and improving once we get to a certain level (in an organisation). We think, we know what we are supposed to. We think, we are great or good enough for tasks in hand or in job? I believe, these are symptoms when we start living with “Illusory Superiority” or “Distorted Reality” or “Cognitive Bias”.
One of many ways, I avoid to have this distorted view of reality or illusory superiority or coginitive bias is by looking beyond the boundaries of my organisation/city/country. I look up to great people in community at large, places (great companies) and practices. I try hard to follow the gurus and be like them.
Another way is to think like, ‘I am a software-developer/technologist and I work at X place/company’ NOT ‘I am a software-developer/technologist in X place/company’.
The difference between these two statements is, former makes me live in actual reality, and look beyond and place myself in larger community). Latter might make me live with distorted/percieved reality, and place myself in a smaller community (organisation, place, country).
As a leader/mentor, we need to challenge and help our team so that they keep living in reality. We have to do it, carefully, without affecting their self-confidence.
29 Jul 2011
I am evaluating various nosql solutions for our existing/new projects. Bluesmoon recommended about Riak which is an awesome nosql datastore/database (and lot more). I couldn’t wait to check it out.
As usual, I relied on Homebrew - the best package manage for OSX - to install applications/libraries. While installing, I got an error:
$ brew install riak
$ …
$ Error: Failed executing: make all rel
After searching for a while, I figured out that there are known issues. With the help of Adam’s comment on github, I was able to install Riak finally.
We make brew ignore Riak’s dependencies while building it.
Following commands should build and install Riak:
$ brew update
$ brew install erlang
$ brew install –HEAD –ignore-dependencies riak -v
28 Jul 2011
Do you want to create/customize an EC2 AMI?
Check out this tutorial by Rohan.
Briefly, steps are:
ec2-bundle-vol -d /mnt -k /mnt/pk-STRINGOFTHIRTYTWOLETTERSORDIGITS.pem -c /mnt/cert-STRINGOFTHIRTYTWOLETTERSORDIGITS.pem -u XXXXXXXXXXXX
XXXXXXXXXXXX is your Amazon account number without dashes.
- Deploy/copy AMI files to S3:
ec2-upload-bundle -b [your-s3-bucket] -m /mnt/image.manifest.xml -a [aws-access-key-id] -s [aws-secret-access-key]
Before bundling the image, do test customised settings and configuration; it’s pain to repeat above steps again, in order to change anything post-deployment.
Tip: Don’t shutdown/terminate the instance, you used to create AMI, until you have tested instances (based on new AMI). If anything goes wrong with new instances, you can come back to this instance (based on base-ami), change, bundle and redeploy.
28 Jul 2011
Recently, we have started noticing “RequestTimeTooSkewed” erro while making requests to Amazon S3. The official FAQs suggests following:
Amazon S3 requires all machines making requests be within 15 minutes of an Amazon S3 webserver’s clock
Reading documentation and various blog posts made me believe, this is problem with the date/time settings on machine (which makes request). However, in our case, it turned out to be something else.
We use boto (Python library) for AWS stuff. Boto caches the connection objects (for S3, EC2, SQS, etc.), and tries to reuse those in later calls.
Imagine a simple use-case:
- Read data from S3
- Process data on EC2-instance/your-server
- Store processed-data on S3
In our case, #2 takes longer than 15 minutes (allowed limit by S3) sometimes, hence, we were noticing ‘RequestTimeTooSkewed’ error.
Anyway, we fixed it by explicitly creating a different/fresh S3(http) connection before sending request to S3. This might sound inefficient, perhaps it is.
This is how we do now, a stripped down version of code from our class:
s3_connection = boto.connect_s3(aws_access_key_id=”aws_access_key_id”,aws_secret_access_key=”aws_secret_access_key”)
output_bucket = s3_connection.get_bucket(“output_bucket”)
key = output_bucket.new_key(key_name)
key.set_contents_from_filename(file_path, file_headers, True, None, 10, file_policy)
I am Python and boto noob; I am sure there would be a better way of doing this, so please share if you know one.
28 Jul 2011
I have been thinking about open-standards for movie-rental business. I searched to find about such standards but I couldn’t locate. Do you know of any?
Basically, a set of specifications/protocols which can be implemented by different players in movie-rental chain. Players include studios, distributor, application-developers, portals, et. al.
Rough thoughts:
- A studio/distributor implements this specification/protocol and exposes API for metadata/streaming(or playback)/file-access from their own server
- Third party developers use the API to to pull metadata and play the content
- Third party developers can charge the user and split the revenue with content owner
- Or, studios/distributors can enable payment-gatway APIs as part of their offering
- Content is always played directly from studio/distributor’s server
- Studio/distributor have total control over their assets and also charge based on subscription/per-access
This would solve many problems (billing, stats, etc.), however, there would be concerns:
- someone (end-user, third-party developer) might try to cache/save streams as file and distribute
- and other concerns?
Once we have specifications and protocols in place - a stack using open-source technologies can be built as template, and made available so that everyone in chain can use/customize it to build their part.
I wanted to talk about it on twitter but 140 chars were too short to express my thoughts. Anyway, it's good to have a blog post in place.
Please share your views.