Weekend PythonExpress workshop at BMSIT, Bangalore.

Arun taking it away!

That’s Arun. Jovial, cool, slightly crazy and a nice guy who is as curious as a 5 year old all the time about the things happening around him.

Santosh, the celebrity of BSMIT.

That’s Santosh. Don’t get him started on being sarcastic. He’ll just have too much fun. A pure geek since his college days, there are very few people around whom he is not acquainted with.

Yours truly.

Last but not the least, yours truly.

Arun, Santosh and I planned to do a beginner level Python workshop at the BMSIT Engineering college as a part of the Python Express initiative. Karthik, who was the organizer, was only too happy to welcome us. The three of us decided to use Anand’s Python Practice Book as a guide. We were planning to cover until Object Oriented Programming. However, there was no point in rushing through.

The idea was to get the kids comfortable with Python. Both Arun and Santosh realized this very well. During the introductory session, which was handled by Arun, he quickly gauged that most of the students were not even comfortable using the interpreter. He took his time, teaching them about variables, strings and conditional statements, by giving them enough exercises to work on as well as using his incredible humour and charm to keep the crowd engaged.

Arun - The man.

Only Santosh and I knew it was his first ever session. No one could have guessed. He was in the zone and a couple of kids came and personally thanked him for making the introduction so welcoming that they were motivated to sit through the entire session. One of them even skipped lunch to stay back!

Way to go Arun!

He finished his session by 12:20PM when we broke for lunch. The lunch was exceptionally good and we had a full stomach by the end of it. We got back and it was about time for Santosh to start his session.

The poor guy had a really sore throat. We tried to arrange speakers, but they were even less audible than one’s voice. In a room with ~100 young, energetic, curious youth, you had to shout at the top of your voice to have your voice heard. That is exactly what Santosh did.

Santosh in charge.

He lost himself among the crowd and did not care about his voice. He had a keen sense of understanding the audience well and dynamically changing his presentation style to suit them.

We had a box of chocolates around. Every time someone finishes a problem first, they are awarded a delicious chocolate! We really needed to buy a bigger box.

Gauging the exhaustion on the face of many, we decided to wrap up our workshop around 4 by finishing off a quick peep into file handling.

I must say it felt good to have been back at a college. When I was roaming around the lab, I noticed most of them earnestly taking down notes in a notebook out of the fear that they would be missing some point. To one of the guys, I asked,

“Hey, will you really be referring back to these notes again?”

He: “Absolutely! Not all of it, but many points in it”.

“Alright”, I said and went around.

While I was passing this young man a second time, he called me and said,

“To be honest, no. I don’t think I will be referring to this at all”

“Thanks for not lying to me”, I said with a smile.

It was good to meet Karthik, who was the one coordinating the entire thing. It was interesting to know he was a Linux Kernel lover who was cracking his head on getting deep into it. Dharshan, his friend, one with a very soothing personality, was a great help in getting us around the venue as well as with the setup.

I did not get to know many of their names, but I remember Aranya, a college student who is an “investment consultant”. Yeah, no kidding. I have his card right here. Also Utkash, who was really keen on getting to understand the intricacies of the Internet. Then there was Kunal, who was from the EEE stream, but interested in programming. A very enthusiastic lad.

All in all, it was a day well spent. Malaysia was extremely fun (long story) and after hanging around the front gate for a while, our cab came at around 5 and we were on our way.

I should do this more often.

 

An introduction to Redis – PyCon Singapore 2014.

The following is the transcript of the talk “Redis – What, why and where” that I gave at PyCon Singapore 2014. You can find the slides down below. Try as I might, I was not able to embed the slides from slides.com. So I have shared the links.

My talk was on Friday, 20th June, 2014 at 1:00PM.

—-

Ladies and gentlemen,

Do you know what my prayer was the moment I knew I got my talk selected? That I would not be allocated a slot right after lunch. Yet here we are.

You must be wondering why a dude from India has come all the way over to Singapore and is giving a talk on Redis at a Python conference. Well, I believe you’ll have the answers to those questions by the time I am done with my talk. This is intended for a beginner level audience and as such, if you have already implemented redis in your stack, then you might be a little disappointed.

There are times when, in your Django web application, you need a certain specific data to be saved. Let me give you an example. Let us say you are gathering all the tweets for the Football World Cup. You hit the Twitter API and tweets are pouring in by the second. How do you keep a counter? Of course, put a Python variable in the loop and keep incrementing.

tweets = fetch_tweets(hashtag = "#WorldCup2014") #Use the Twython Library
count = 0
for tweet in tweets:
    entities = process_tweet(tweet)
    count = count + 1

The only problem is that if another process/view wants to display it, it won’t be able to access it.

Which means you should have persistence. If you’re using Postgres or any other SQL database for that matter, you could have a field that would allow you to keep the count or maybe do a count(*) on your Tweets model each time you want to get the total number of tweets.

#Assume you have defined a model Tweet
count = Tweet.objects.all().count()

The count(*) option is going to get your SQL query to execute quite slow once you have about 20000 rows or so.

#Assume you have defined a model Stat to store the count which has a field tweet_count
Stat.objects.get(hashtag = "#WorldCup2014").update(tweet_count = F('tweet_count') + 1)

The next option being to increment the count within the Postgres field. This has an immense potential to lead you into race conditions and thereby screwing up your count.

So a fast, reliable and persistent solution is to have redis. Believe it or not, you can use this as an actual Database because of its persistence. All you need to do is to get the redis server up and running on your machine, use the redis-py Python library to increment a “key” by one each time a new tweet comes in. You don’t even need to “initialize” the key. The increment command creates a key if it is not already present and increments it. Really neat. Hence, redis is a persistent key-value based NoSQL Data storage.

import redis #We are using the redis-py library
r = redis.StrictRedis()

tweets = fetch_tweets(hashtag = "#WorldCup2014")
for tweet in tweets:
    entities = process_tweet(tweet)
    r.incr("tweets_count", amount = 1)

count = r.get("tweets_count")

Now, persistence is not the only thing that makes Redis useful. Suppose you just don’t stop with counting tweets. You count the pictures, videos and other links form within them. Also, you are doing the same with Facebook as well. Now you have two sources and their corresponding fields. Intuitively, a dictionary comes to mind. Name of one dictionary would be “Twitter” and the other one “Facebook”. Each of them will have fields “statuses”, “photos”, “links”, etc.

Guess what? Redis has a dictionary data type and let’s you do exactly this. The various types of in-built data types that it provides is fantastic. People tend to call it the data structure server due to this reason.

import redis
r = redis.StrictRedis()

tweets = fetch_tweets(hashtag = "#WorldCup2014")
for tweet in tweets:
    entities = process_tweet(tweet)
    r.hincrby("Twitter", "tweets_count", amount = 1)
    if "photo" in entities:
        r.hincrby("Twitter", "photo_count", amount = 1)
    if "video" in entities:
        r.hincrby("Twitter", "video_count", amount = 1)
    if "link" in entities:
        r.hincrby("Twitter", "link_count", amount = 1)

twitter_photos_count = r.hget("Twitter", "photo_count")
...

posts = fetch_fb_posts(hashtag = "#WorldCup2014")
for post in posts:
    entities = process_post(post)
    r.hincrby("Facebook", "posts_count", amount = 1)
    if "photo" in entities:
        r.hincrby("Facebook", "photo_count", amount = 1)
    if "video" in entities:
        r.hincrby("Facebook", "video_count", amount = 1)
    if "link" in entities:
        r.hincrby("Facebook", "link_count", amount = 1)

fb_photos_count = r.hget("Facebook", "photo_count")
...

It supports 5 data types comprising of strings, sets, dictionaries, sorted sets and lists.

So, one, the persistence and two, the data types. These two are what makes Redis special.

Narcissism
———-

Oh and incidentally, I am Haris Ibrahim K. V. and I am from the southern most state of India called Kerala. I work as a Computer Science Engineer at a small company called Eventifier. I’ve been a Python developer only since the past 7 months and hence, have relatively lesser experience when it comes to programming. Although I have organized conferences and workshops by myself, as a part of my earlier job, this is my first ever talk at one. So there might be a few rusty edges. Do bare with me. Also, as a hobby and passion, I love writing.

Alright, enough with the narcissism. Let’s get back to business.

Redis stores its data in a Big In-Memory dictionary where they keys can only be strings, but the values can be any of the 5 data types that we mentioned earlier. Each of these data structures have their own implementation which will come to later. Let us go back to a few more use cases where you can use redis.

LEADER BOARD (using sorted sets)

Let’s talk about leader board. What I am trying to do here is to give you examples that cover all the 5 data structures that Redis provides so that you will know what to use where and why. Leader board. I am sure you are familiar with the concept of leaderboard, but for those among you who are not, it is place where the top 10 of something is shown. Top 10 or 20, it does not matter. But a list of entities sorted based on their rank.

An example should clarify this right away. Let’s go back to the football world cup example. The tweets are pouring in. Boy, reminds me of monsoon back at home. Anyway, You want to show the most retweeted tweets in descending order of their retweet count. This will give you an idea of what is trending for that particular hashtag. Now, what do you do? This is where the “sorted set” data type comes into picture. As the name suggests, it is a set, but sorted.

What is this sorted based on? Ah yes. So when you hear a sorted set, the picture that should come into your mind is a key with a value as a list of tuples. I use “tuples” in a loose sense. Once you have that picture in mind, this is how the structure would look like:

key: (score member) (score member)

All you need to do is to define a key called “trending_tweets” and then use the “zadd” redis command to specify the score as the number of retweets and the member as the “tweet text + username” or something.

import redis
r = redis.StrictRedis()

tweets = fetch_tweets(hashtag = "#WorldCup2014") #Use the Twython Library
count = 0
for tweet in tweets:
    entities = process_tweet(tweet)
    r.zadd("trending_tweets", tweet.retweet_count, tweet.text)

trending_tweets = r.zrange("trending_tweets", 0, -1)

You could also store the tweet ids as the members and just do a query on your SQL database to fetch tweets with those particular ids. This would work much better since sorted set is a set and it will be expensive to maintain uniqueness on members if they are huge chunks of text.

import redis
r = redis.StrictRedis()

tweets = fetch_tweets(hashtag = "#WorldCup2014") #Use the Twython Library
count = 0
for tweet in tweets:
    entities = process_tweet(tweet)
    t = Tweet.objects.create(tweet = tweet)
    r.zadd("trending_tweets", tweet.retweet_count, t.id)

trending_tweets = r.zrange("trending_tweets", 0, -1)
popular_tweet_list = []
for tweet_id in trending_tweets:
    popular_tweet_list.append(Tweet.objects.get(id = tweet_id))

To retrieve the top 10, use the “zrange” command and specify the indices. That should get you going.

CACHING (using list)

This introduces a new data type as well as a useful feature.

Redis allows you to set “expire” on certain keys. You can specify the key name and the number of seconds in which the key should expire. You might have already guessed it. Yes, you can implement a caching mechanism with this. The timeout remains valid as long as you only “alter” the keys using operations such as increment, add, etc. However, if you set the key once more or delete it, the deal is off. No timeout for you.

The way to implement this would be to first know what value want to be cached. Save that value into redis with a key. Call expire(key, seconds) and you’re done. What goes hand in hand with this is the TTL command. Known as Time To Live. As you could guess, this gives you the time left before a certain key expires. It returns -2 if the key has expired or -1 if an expire has not been set on the key to begin with. Pretty handy.

Let’s go back to the Football world cup tweets example once again. Suppose you want to showcase the photos that got retweeted the most every 5 minute or so. You might have to do something like fetching the popular tweets, get the corresponding photo url, push them into a list and set an expiry on that list’s name.

import redis
r = redis.StrictRedis()

tweets = fetch_tweets(hashtag = "#WorldCup2014") #Use the Twython Library
count = 0
for tweet in tweets:
    entities = process_tweet(tweet)
    t = Tweet.objects.create(tweet = tweet)
    r.zadd("trending_tweets", tweet.retweet_count, t.id)

trending_tweets = r.zrange("trending_tweets", 0, -1)
popular_tweet_list = []
for tweet_id in trending_tweets:
    popular_tweet_list.append(Tweet.objects.get(id = tweet_id))

if r.ttl("trending_photos") in [-1, -2]:
    for tweet in popular_tweet_list:
        r.rpush("trending_photos", tweet.media_url)
        trending_photos = r.lrange("trending_photos", 0, -1)
        r.expire("trending_photos", 120) #Expire in 2 minutes
else:
    trending_photos = r.lrange("trending_photos", 0, -1)

The list is a double ended list actually. You can insert at the left or the right. Accordingly you can pop from either side as well.

CREDITS

The first person whom I would like to thank is someone who deserves much more than me to be up on this stage and give this talk. However, he usually prefers to be behind the scenes, getting things done and motivate people to do things. He is my colleague and the CTO of the company I work for, Mr Nazim Zeeshan and there he is.

The second would be Sripathi. There is a company called HasGeek back in India who organizes technology conferences and workshops. They had organized a Redis miniconf recently where Sripathi gave a talk on Redis Memory optimization. What I am going to present next is from his inspiration.

Last but not the least, the PyCon Singapore team who organized and made this a reality. Kudos to them!

INTERNAL DATA TYPES

This is something that I picked up from what Sripathi explained. I confess I’m not an expert on this but thought it would spark a few minds if presented. Redis stores all that we talked about right now internally using 6 different data types.

Refer to the slides and video for this part.

—-

Slides:

http://slides.com/harisibrahimkv/redis-what-why-and-where

Video:

https://archive.org/details/IntroductionToRedis

A sunny Saturday at BeaglesLoft.

Siva sent me, Krace, Kartik and Sayan an email asking whether we would be available on the 7th of June to volunteer for the first offline Django meetup. I was only too happy to receive the invitation and replied saying “I believe I can make it”.

The next mail in my inbox is where I found TechBuilders. The email was from the BangPypers mailing list posted by someone called Niranjan. This is the link that was in the mail:

http://techbuildersbayesianreasoning.splashthat.com/

Even during my time at HasGeek last year, I used to keep wondering why isn’t there any learning related to Math happening among all these Computer geeks who were working on Python, JS, Ruby, etc. I even had a decent conversation regarding this with the one person whom I found to be interested in the Math aspect of computers. His name is Abhijith and we became friends at the Fifth Elephant conference last year when he signed up to volunteer for it.

Suffice to say, visiting that link, when I saw that these people were trying to bring Math and Computer Science together, I knew it was something that I could not miss at any cost. I sent Siva and the rest of them an email then and there itself saying I had stumbled upon this TechBuilders meeting and might not be able to make it for the Django workshop.

I love teaching and hence was extremely upset about missing the Django workshop. However, on the other hand, I felt like the TechBuilders people had read my mind. It was, as Paulo Coelho would say, a calling. I could not resist going. Also, I had to give up on my Saturday writing as well.

It was being hosted at Haggle’s office. The people working at Haggle were the ones behind BeaglesLoft (a playground for creators and innovators) and also behind TechBuilders, their initiative to teach the Bangalore tech community something that it is lacking. The office was just a 5 minute walk away from my home.

The mail which we received from Asya, the quick witted community manager at BeaglesLoft, on the day before had asked all of us to be there at the venue exactly at 10:30AM and not to follow the “Indian Standard Time”. Little did they realize the inevitable force they were reckoning with. The meeting started at 11:00AM.

The event was supposed to start off with Sandipan from JustDial giving a talk on how they were using Bayesian theorem at their company. Unfortunately, he had some emergency and could not make it. So Niranjan, who is the founder of Haggle, took the stage and started off by introducing us to what the whole deal was about.

The thing that I liked about Niranjan was that he was not pretentious. He really observed Math was not a part of the IT culture, along with the liberal arts being treated as a completely separate entity as well. He wanted to create an atmosphere where these things would co-exist and would value each other’s importance. There, he was doing it.

Not just that. I have heard many people twisting their words to indirectly mean “spread the word”. Niranjan directly told us to do it. His conviction to doing this impressed me. Apart from taking the initiative to build the community, I must say he is a really good teacher too. He taught me Math and that, is amazing.

If you were to meet me before my 4th year of college, I would have told you, without question, that I was going to become a Math teacher. So when he talked about Mass Probability function and the Bayesian theorem in a way that I could understand after more than 2 years of staying away from it, it felt really great.

You must read his series of blog posts on Bayesian Reasoning here: http://beaglesblog.tumblr.com/tagged/techbuilders

We were asked to read them before attending the meetup. Having been the college kid, I put it to the last moment as usual. An hour before the meetup! I finished off all the posts within 45 minutes and it was time to leave in order to reach the venue on time. That dreadful feeling of not having revised what you had learned that dawns upon you on the morning of the exam day was on me. I know, it is funny. But to know that it was not something to worry about, made me feel even more excited to attend the gathering.

Towards the end of his session, he proposed a few use cases where Bayesian reasoning could be applied so that we could break up into teams and work on modelling them.

One was about a Rikshaw driver. Suppose you were one and someone came and asked you to take him to Jayanagar, how would you apply Bayesian reasoning to know whether it would be profitable for you to take him there.

Second one was about the problem given on the blog itself, identifying a person whom you meet in the US as being from Bangalore or not.

The third one was the famous Monty Hall problem. Even though I say it is famous, it was the first time I was hearing of it. It is an interesting problem which makes you realize why Math ain’t your gut feeling. It is a bit crazy, but yeah, read it.

We decided to then split up into three teams of 5 each. The decision was followed by an interesting 5 minutes of trying to figure out an algorithm to split us up. Whether the count should start from 1 and go until 5 before the 15 us were through or whether it should start form 1 until 3 until all of us were through. The confusion was funny enough to have while we were learning Math!

I was in team 2 consisting of:

Sandeep, an IIITB graduate who was going to join Haggle in a few months. He was sharp. The moment we gathered around a table to “brain-buzz”, he came up with this idea of building a recommendation system which would analyse the social media streams of users and figure out what sort of restaurants he preferred to eat out of.

Ashray, who was working with Haggle already. A strong and silent person, I would say. He was as keen as the rest of us on learning together.

Ashutosh, who is Sandeep’s junior at IIITB. He is awesome. When I was struggling to get the basics really strong, he took my pen and paper from me and taught me the reasoning from step 1 patiently, with examples and proper explanation. I hope to see more of him over the coming days.

Last but not the least, Fasil. I would define him as exuberant, but not the BSing kind. He was very outspoken but knew exactly well what he was speaking about. He was working on his own startup.

By the time we had discussed and modelled our recommendation system, it was time for presentations.

Oh, and I forgot to mention the drinks and biscuits that were there all along! No, no, seriously. What kind of a chump would I be if I did not mention this after eating 6 of those delicious cream biscuits right under the nose of my team mates while they were busy building the recommendation system!

Asya, Reya and Tania made sure we had the best atmosphere for thinking and solving the problems at hand. These are the times when I really see the importance of good community managers. They make other people’s lives easier. I never saw myself like that when I was at HasGeek I guess. I just hope others did at least.

It was time for the presentations and team 1 was the first one to go in front. They had build a model around detecting the person who was sarcastic. After analysing manually a few 100s of a person’s tweets and identifying the sarcastic ones in them, each person was assigned a probability of being sarcastic based on how many times he was sarcastic among his past 100 tweets.

This was done for more than a few users. After having built the prior data, when a new tweet came in, you could use the Bayesian reasoning to find out what was the probability of that tweet being sarcastic given it was from a particular user. They had a few numbers as well for demoing this.

Second one was us. Well, I have already explained what we did. The interesting point that Niranjan made was to use more than just words for our probability calculation. Because if we were to just look at words like “Pizza”, “Burger”, etc, then we would miss out on differences between sentences like “I hate pizza” and “I love pizza”.

Once ours was concluded, team 3 came in. They had a funny use case. I have learnt to take things in a lighter note and I hope people don’t jump around reading the use case. It was about the probability of a girl going out with you given the fact that she smiled at you. As funny as this was, for a few of them to think of something like this, would mean that the social media that we have today would have already gone miles ahead in terms of taking advantage of  us on similar terms. It was scary.

Niranjan came up to conclude the presentations. This is where he asked us to spread the word and help build the community. He left the rest of the afternoon as an open invitation to do anything sitting together or to move out.

They were taking memberships for the community and I “sold my soul”, as Asya put it. We hung out with each other for an hour or more, getting to know each other better.

I met Samarth, a smart lad who was a Hardware hacker by passion working at Infosys. His face was familiar and there was only one question that I could ask him about it. “Were you there at any HasGeek events?”. Yep, he was there for Droidcon 2013.

Then there was Vamsee, who was a kindred soul when it came to people calling him “Vamshee” adding that all-too-horrible “h” right in the middle! We shared our grief with each other over how inconsiderate people were towards our feelings.

Then there was Ashutosh, Jha (because I really can’t remember his other part of the name), Fasil, Prateek, who asked me, “Hey, aren’t you that guy who wrote that Eventifier blog post? That was amazing”. I was so happy! Jon from Minsh was there. It was good to meet him after such a long time. He was the first few geeks whom I interacted with as soon as I had joined HasGeek. Definitely a part of what made me grow.

We shook hands and were about to leave when I met this unassuming young fellow at the stairs.

“Hey, don’t I know you?”

“I am Rishab. Umm.. Do you know me?”

I unleashed my secret weapon once again.

“Were you at any HasGeek event before?”

“Oh… Were you at MetaRefresh 2013?”

“Yeah, I was a part of the organizing committee”

“Okay. Maybe you heard about that guy who gave a talk on CSSDeck?”

“Oooh! It was you! Now I remember… Cool man”

So that was him. He had generated a whole lot of buzz with his flash talk at that conference. He said he was working on his own startup now. I bid him goodbye and was on my way.

Now I have an excuse to learn Math. I hope these folks keep at it. It was amazing.

A short review on “On Writing” by Stephen King

When Krace first called me asking, “Hey, what is your take on Stephen King novels?”, I was pretentious.

“Although I have not read any of his works, I must say I have heard not-so-good reviews about them”.

I’m sure God won’t forgive me for saying that. I thought he wanted to buy a book for himself and hold true to his resolution of reading as much as possible. On my last day at HasGeek, I was surprised and happy when he gifted me with Stephen’s “On Writing”.

This was 7 months ago. That is how long my reading has suffered. Religiously, I would take this book with me every time I went home in the hope that I would read it from there. Alas, that never happened. During one of my visits, I was talking to my Dad about his childhood days in the hope of recreating the history of my village through a story. I got what I wanted from him and finished writing the first two paragraphs, setting the scene. My sister saw this unfinished piece of work lying on my bed. She read it. Being a voracious reader, she had already finished reading Stephen’s book. She came to me and said,

“I advice you to read ‘On Writing’ before you start off with this piece”.

I did not pay heed to that advice and hence the book remained unread and I did not make much progress with my story either.

The last time I remember when I could not put a book down and *had* to continue reading it was when I was going through Lord Of The Rings. That was during my second year of college and hence almost 3 years ago. Today morning is when I finally found that same spirit again.

The rooftop garden of my office is a lovely place. There is no wifi reception there to begin with. No distractions. It is high enough for one to consider the street sounds to be meager background noise. I reached there about 8 in the morning, made myself comfortable on one of the straw chairs, adjusted the cushion, pulled another chair to put my leg on, took out the book and started reading. I had finished almost 130 pages out of the 285 already.

The next three and half hours were magical. Stephen describes writing as telepathy. For the ignorant, that would sound like a cool word filled with philosophical mumbo jumbo. However, once you start seeing his study with the writing table, the unfinished manuscripts stacked neatly in the drawers, him sitting on the chair with door of the room closed, writing away, you realize you went back 16 years in time. Or maybe he came 16 years into the future.

The image of his life and his struggles become so vividly clear in your mind that there were moments when I really felt like I was with him during those days. Of course, if it was a writing describing his life story, that should be called a biography. This is not so. As he puts it himself, this book describes how a writer is formed. It maps to any budding author’s life. After all, no author had a red carpet laid in front him to be a part of the ministry of authors. They all struggled to get there.

Inspiration is overrated in the modern world. Many find that as an excuse. They wait as if it is someone else’s responsibility to get them inspired. Although websites like zenpencils and the kind are doing a pretty good job at it, the point you are missing is that inspiration is not the solution to your problem of creativity. It is only a part of the puzzle. Grit, determination and perseverance are those which will get you where you want to reach.

Coming back from the slight detour, even though there are more than a few moments in the book where you can imbibe tremendous inspiration from, Stephen gives absolutely practical advices so as to what makes a great writing and what constructs are the worst that you could use.

I quote, “The road to hell is paved with adverbs”.

Those words are going to hit you like a truck the next time you write ‘he said sarcastically’.

For the past few years, many people have told me to get rid of using the passive tone in my writing. Upon asking why that is, I never got a concrete explanation. Stephen just bursts forth with anger and criticisms against using the passive tone in your writing unnecessarily.

I quote, “It’s weak, it’s circuitous and it’s frequently torturous, as well. How about this: ‘My first kiss will always be recalled by me as how my romance with Shanya was begun’. Oh, man – who farted, right? A simpler way to express this idea – sweeter and more forceful, as well – might be this: ‘My romance with Shanya began with our first kiss. I’ll never forget it’. I’m not in love with this because it uses ‘with’ twice in four words, but at least we’re out of that awful passive voice.”

He goes on dissecting the construct even further and giving us more reasons to hate and crucify the passive tone. It is for the timid writers, he says. For those are afraid they are not able to convey what they want to. I was always afraid and I still am. However, I am happy that I wrote the last sentence instead of ‘I have always been afraid’.

I would not recommend this book to those who are interested in factual writing. As much as it offers practical advises like the ones above, it revolves around imagination and creative writing. Taking in things from around you and converting them into what you want them to be. Digging for the fossils, as he puts it. Be patient, be careful. Dig slowly and you will get the entire piece unscathed.

One thing becomes absolutely clear from this book. If you have a passion for writing, the only thing that is stopping you from doing it is your lame excuses. You will want to believe they are real excuses so that you can convince people. But they are lame. You are just lazy to write. You would rather be entertained and wait for your all important inspiration to shower upon you. Get rid of the fear. Don’t be afraid. Just write.

Thank you Krace for gifting me this book. You knew what I wanted more than I knew it myself.

A fortunate evening.

As was his daily routine, he took his laptop out and lay down on his bed. Cycling was tiring. Only while coming back from his office though. The way to his office was mostly downhill and that too the early morning rides are peaceful and serene. He hated coming back. One reason being the uphill ride and the second being the other insensitive vehicles all around. He knew he was not Wolverine and neither was he going to get those powers. However, there were times where he really wished he could pull out a certain driver from his seat, hold him down on the bonnet, claws popped out pointing at his face, and telling him, “Don’t you dare ruin my momentum bub”. Unlike olden days, he had learned to come out of these fantasies much quicker.

He made himself comfortable on the bed. Resting his head and neck on his pillow, slightly tilted up in an angle that would easily let him look at his laptop screen. He plugged in the Internet cable and waited for it to connect. Work was enjoyable. That lying down had a certain inexplicable pleasure to it. The pleasure of a man back home from a good day’s work. The programming job along with the cycling exercise was tiring, but he loved it.

He logged in to his Internet service. A 2Mbps connection was more than enough for his needs at home. He opened up youtube and looked at the search bar wondering what to type in. Just then his phone beeped. It was a text message from his friend Ranjith. It said,

“Macha, can’t you try writing for newspapers! A thought”.

That was unexpected. For a moment, he got thrown back to the days where he used to keep writing. That was when he did not have too much attention. A time when it did not matter who read whatever was written. Things had changed now however. Everytime he thought of writing something, the people who might read it came to his mind. That scared him. He was not prepared for what they would say. What all comments he would have to face. Hence, he slowly gave up even thinking of writing.

However, at that moment, he felt a joy. His friends still did remember him as someone who wrote.

A conversation happened between Ranjith and him where he explained that writing for newspapers not only would require tremendous skill but a lot of research as well. Upon being asked how this sudden thought popped up, Ranjith said that he saw a similar writing style in of the articles within The Hindu newspaper.

“That is a great compliment Ranjith. Thanks!”

He put his phone away and turned his attention back to the search results in Youtube. It was almost 5:30PM. He stretched his legs and arms, letting off a deep sigh of relief.

“Knock, knock”. He heard someone knocking at the door.

That was unusual. His roommate only comes back around 8PM in the night. Also, since he was living as a bachelor, people paying him a visit randomly was scarce. There would have to be a phone call or at least a text message discussing about where and when to meet.

“Knock, knock”. Again.

Feeling irritated at being disturbed from his comfortable lying posture and a mind ready to be entertained, he grumbled and got up.

The door lock consisted of a knob from the inside and a keyhole from the outside. He went ahead and turned knob, unlocking the door.

A sudden gush of wind swept in.

Having recovered from the suddent burst of air, he lowered his hands from his face. He could not make out who was standing outside his home. His adrenaline kicked in.

It was a man standing outside. He was wearing a long black trench coat, something very unusual in India. At least, he had never seen anyone in trench coat before. At the maximum, a jacket or a sweater. This guy standing outside was probably boiling inside in this summer heat. However, that person did not seem to show any sign of uncomfortableness. He had a hat on as well. A round hat and he was holding his head down so that his face was not visible. His pale hands sticking out of the trench coat sleeves were visible. They looked pale. Quite pale.

“What’s up Haris? Killing yet another beautiful evening?”, the person asked in a husky, yet composed voice.

Haris’ heart skipped a few beats. He did not have a clue who it was standing there acting all spooky. The pale skin, the gush of wind, the tranch coat and the spiked long hair reminded him of someone. He did not want to believe it. Too many comic books tend to mess with one’s thoughts. He mustered up all the courage he could.

“Who are you?”

The man slowly raised his head. Haris looked at him in a state of shock as his face revealed inch by inch starting from his jaw. The skin was pale, really pale. The lips did not strike any resemblance. The nose did not help that much either. Nothing could have probably prepared him for whom he saw there then. The eyes revealed it all.

It was Neil Gaiman!

“Wha…!”, Haris exclaimed.

“Of all the people, I did not expect you to be surprised to see me. Were you not expecting me?”, asked Neil.

“No sir. I mean Neil.. Well, how would I? Come in, come in”, Haris stuttered.

“It is a beautiful evening. I would much rather be outside enjoying the breeze and catching the setting sun. Shall we go and sit on the terrace?”

“By all means, of course. Here, let me a grab a couple of chairs”

“No, no… Just get that mat in your other room. That’ll do nicely”

“How did you know that I had a mat there?”, Haris asked even more surprised than he already was.

“Surely that is not your greatest curiosity at the moment?”, Neil replied with a smile.

“Yeah no, not really. Okay, let me fetch it”.

Haris fetched the mat and both of them went upstairs onto the terrace. He laid the mat down. There was a pleasant breeze and sky was just starting to turn golden. There were eagles flying around. Since the entire meat market was just a couple of yards away from the building, the sight of eagles were quite frequent around. Neil put his briefcase on the mat, took his coat off and both of them sat down.

“It is an honor to meet you sir. But what’s going on? Why are you here?”, Haris asked, not being able to contain the suspense and excitement any longer.

“Aren’t you supposed to be telling me that? After all, you called me here.”

“What!? What are you talking about? How on Earth would I call you?”

“Perhaps you dreamt?”, there was a slightly sarcastic tone in Neil’s voice.

“Yeah right. If that was the case, then probably a lot more people should be around.”, stated Haris with a laugh.

“Well, Galahad must be here by now. Why don’t you go and meet him? I believe he is downstairs.”

With a look of amazement, Haris slowly got up and went down. Just as he turned the corner where the flight of stairs ended, his heart again skipped a few beats. This was becoming a habit now and he did not feel troubled about it.

“Milord”, Galahad took his helmet off, tucked it in his arm pits and kneeled. His shining white knight’s armor looked brilliant.

“Galahad at your service milord. May I know why your highness has summoned me?”

Haris understood the reality of the situation. He always dreaded this would happen at some point. He had gone crazy! All those years of reading comics and watching cartoons were catching up to him now. It was out of control. What could he do to prevent this going any further! He tried pinching himself in the hope that he would snap out of the dream. No such luck. It only hurt his forearm.

“Hey hey, stand up. What’re you doing? What’s all this about?”, asked Haris, still in his undershirt and black pants.

There was a puzzled look on Galahad’s face.

“But sire, you asked me to come…”

There was sudden crash and boom. The quake sent Haris flying over the building. He screamed and closed his eyes shut, imagining to be rescued. At that exact instant, something hit him and swept him upwards. He was in a shock to notice what had gotten hold of him. After swinging up for a while, both he and his savior landed on top of another building.

“Are you alright?”, a deep voice asked.

Haris recognized the voice in an instant. He rubbed his eyes and turned back.

“No way!”, he exclaimed.

“What?”

“I mean, I am alright… Batman!”

“Good, then let’s go now. The League is trying their best to defend, but we need you.”

“Whoa wait, defend against whom? What is happening?”

“You will have your answers soon, but we need to leave now!”, and with that, Batman caught hold of him and pulled both of them up into the Batwing which was hovering above.

The jet speeded. Haris was in a daze.

There was a gentle tap on his shoulders. He turned back. Neil was sitting there in the seat behind him.

“You’re fantasizing”, Neil said.

Even before Haris could say anything in reply, suddenly the jet shook vehemently as if it had crashed into something. He saw Batman leaning for his seat and pressing a button underneath it. The next instant, he got thrown way up into the air while he could see the jet going forward in flames. There was small red button strapped onto his chest which was blinking. Without thinking twice, he pressed it. A parachute bag popped up from behind, making him drift down slowly.

Way down underneath him, he could see smoke rising. Dark, thick smoke. He could vaguely make out the outline of some structure from the front of which the smoke was originating. The wind carried him slightly forward, leaving the structure beneath him.

As he drfited closer to the ground, he could make out a set of horses gallopping at high speed away from the structure, towards west, which was the direction he was drifting in. A look in that direction revealed a majestic white fort built really high at the foot of a hill. He started to get a strange feeling. A Deja Vu perhaps. Suddenly, he heard the sound of cloth ripping apart above him. Something had torn his parachute. He was almost at ground level when this happend. He fell, but did not hit the ground.

One of the riderless gallopping horses had come directly underneath and gotten him on its back. The horse rode on as if it expected this to happen. On both sides and up front, he could see other riders speeding away towards the white fort. Before he got to ask the question of what was happening, a spine freezing screech cut short his thoughts.

He looked up and to his terror, saw a huge black, chaotic dragon. He could see the large fangs, the glowing eyes and a stench so bad that he was filled digust and hatred in an instant. However, his terror seemed not to take control of his senses. Although he was absolutely sure he did not have a sword when he fell from the plane, he took one out from its sheath that was hanging on his waist belt. Holding it high up, he screamed and sped on the horse.

The dragon overtook the riders, pivoted back and swept down directly at them. Haris drew his sword back and thrusted it at the dragon. However, its wings knocked it out of his hands along with three other mounted riders off their horses. Only then a fear started creeping up his spine and he wanted to survive.

As if his unspoken words were heard, he saw a figure, clad in white robe, holding up high a staff glowing with a light that was blindingly bright, speeding towards them riding a horse. He was coming from the castle’s direction.

“Begone foul creatures!”, he shouted and raised his staff at the dragons circling about.

The dragons were taken aback seeing the light coming from the staff. The valiant rider clad in white rode around the set of gallopping riders, cutting them off from the dragons and rest of the dark army who were chasing them. Being rid of the danger, they ran into the awaiting doors of the white castle, feeling safe and comfortable beneath the strong and majestic walls.

The people within bowed in respect as the riders galloped towards the top. Upon reaching the 8th tier of walls, they alighted. Everyone walked away with their horses in different directions. Haris stood there dumbfounded, not knowing what was going on.

“Come my dear friend. The enemy approaches fast. We should hold the counsel as soon as possible. May I ask your name?”

“Uh, Haris… Gandalf. I mean, sir”.

“A strange name indeed. Maybe the Gods have sent you for aid during these troubled times. Come, let us go in.”

Gandalf slowly walked into one of the huge doors that remained slightly opened.

“Haris!”

He turned around startled to hear his name being mentioned. Neil was standing there.

“You are living in another person’s world now. The things that you see around you, the people, and even you, are at the mercy of someone else”

Neil was assertive in his tone. There was a slight sign of fear as well.

“Take the words into your control. Create your own world. Let those who do not understand the joy of creating a universe say what they wish. Let the words of power, that of passion and love come forth.  Stitch together the torn pieces of fabric that makes up our world.”

It did not feel real. He had heard Neil speak before and this did not sound anything like it.

“Why do you speak like that?”, asked Haris.

“Because you want me to speak like that. The depth of what you create and the message it conveys only goes as far as your knowledge and experience.  You used to dream and you used to make those dreams come true. Somewhere along the way, the dreams remained but the creation died. You sought to find the same feeling over and over again, never to have succeeded.”

“This is what I have in my mind! But how did you know that?”

A smile appeared on Neil’s face.

“AUUGH!”, cried Haris out loud feeling a stabbing pain through him. A sword’s tip stuck out through his stomach. The pain was excruciating. Blood gushed out and his strength failed him. He fell to the ground. Still, Neil just stood there with that smile on his face.

“You can heal.”, he said.

Then it struck Haris. He got up slowly, the sword still sticking out. He clenched his fists, wrinkled his forehead, and started uttering a soft roar. It built up slowly, growing fiercer and fiercer by the moment, until it became a loud, terrifying scream! His muscles ripped his shirt off. He threw his head back with the scream, and from within his tightly clenched fists, popped three claws! Holding the sword with his left hand, he swung around with his right hand stretched wide.

There was a shriek. Amidst the smoke, a severed head fell down on the ground. It was pitch black, and was covered with a dark mask, wearing a gray, broken crown. There was a not a drop of blood to be seen. The body which still held the sword’s hilt turned into ashes. Haris pulled the sword out of him. He was panting, his chest heaving up and down. He felt the pain drifting away. A look at his stomach revealed no wound.

Meanwhile all this was happening, Neil watched in amusement, not showing the slightest of intimidation.

“I am disappointed a bit”, he said, and walked away.

Haris stood there. He wondered what Neil meant. He slowly walked towards the walls and looked over them. The Dog was running around on the rooftop of the neighboring building. Its mistress had gone for work. Round and round it would go all day long, barking and standing up to see over the fence.

“The world must be those four walls for it. Except for the occasional peek it takes over them. I wonder what goes through its mind when it hears a language it can understand. The fierce debate of the street dogs 5 floors down”, Haris thought.

He shifted his gaze slowly towards the right. Over the horizon, he could see the sun slowly going down. Bathing the world in gold, making it look and feel so precious. He savored the moment. Following along the golden rays, he gaze fell upon the solemn tree standing tall and majestic, proud to wear the golden pardha awhile before going to sleep. As much as the sight was glorious to behold, he felt a sense of sadness at the sight. Around it was a wide stretch on uninhabited land. For miles, there were no trees around. An old man, with a book in his hand, stood in front of it. Haris could sense the conversation.  He grieved.

There was a slight tap on his shoulders. He turned around.

“Dad!”, he exclaimed.

“You have a gift. Make the world a better place with it.”

“But, but… how?”

“That answer is for you to find on your own. However, there is one thing that I can tell you.”, his Father looked at him reassuringly. “That you are not alone”.

The door which Gandalf had gone in opened. Haris could not see what was within. He waited. Even though he had enough surprises and adventure for one day, he was not prepared for what happened next.

The people who came out started with his family, followed by his friends. They started pouring out, each carrying a glowing pot. It did not just stop with them. The leaders of the world, the beggars, the scums of the society, the activists, all of them were there. The superheroes started flying and swinging in from around. The monsters and creatures he ever knew came around and stood obediently. The actors, their characters, the bugs, birds, animals, trees, plants, anything and everything came and stood there!

He stood there gaping. Neil came forward.

“Our experiences are at your command. Those that have been shared, to be used as you will. Those that have not been shared, waiting for you in those pots. All you need to do, is ask”. He paused for a moment and then continued, “We are there right behind you. Now it is time to start your quest. Let’s get you back home. Any preferences?”, he added with a wink.

Haris smiled.

“I think I’ve got that covered”. With that, he ran and jumped over the wall. Falling freely. He did not sprout wings, he did not wear a cape. No one came from anywhere to save him from the fall. He cut the air sharp and went straight down. The trees, the stones and the pebbles started getting bigger. It grew bigger and bigger until WHAM!

He heard Neil’s voice in his head. The screen was titled “Neil Gaiman – Advice”. The flash video box showed suggestions for other videos to watch. It was 5.37PM. He let go off a deep sigh. He got up, took his laptop and put it on his table. He adjusted the seat, sat on it, fired up his favorite text editor and started typing in,

“As was his daily routine, he took his laptop out and lay down on his bed. Cycling was tiring…”

—————

Following was what the voice said. (This is the transcript of the video titled ‘Neil Gaiman – Advice’, on youtube – https://www.youtube.com/watch?v=voFDz4o6H9g)

“If you only write when you’re inspired, you maybe a fairly decent poet, but you will never be a novelist. Because, you’re going to have to make your word count and those words aren’t going to wait for whether you are inspired or not. So you have to write when you are not inspired and you have to write the things that don’t inspire you. The weird thing is, six months later you will look back at them and you can’t remember which things you wrote when you were inspired and which things you wrote because they had to be written next.

The process of writing can be magical. There are times when you step out of an upper floor window and you just walk across thin air, and it is absolute and utter happiness. Mostly it is a process of putting one word after another. It is like, out in Peak District, in England, and up in Scotland, there are people who make dry stone walls. And they have been making dry stone walls for generations. The way they make these walls is, they have lots and lots of rocks. They put one down and they put another one down that fits, and they put another one down that fits. They know how to do it. And somehow, they create these walls that are absolutely stable. And just by putting one rock down after another, eventually, you have a wall.

That’s how you make a novel.

Put one word, after another, and then you repeat. So when people come to me and they say, ‘I wanna be a writer. What should I do?’. I say, ‘You have to write’.

Sometimes they say, ‘I am already doing that. What else should I do?’. I say, ‘You have to finish things’. Because that’s where you learn from. You learn by finishing things.

There is so much advice that you can give young writers. Particularly writes who want to work within a certain genre. Read within that genre to understand what people are doing, but then, go and read outside your comfort zone. If you love a certain kind of movie and you want to make hollywood action thrillers, go watch other kinds of movies. Watch documentaries and go see the other stuff. Find everything you can. If you like books, and you like fantasy and you want to become the next Tolkien, don’t read big, Tolkienesque fantasies. Tolkien did not read big Tolkienesque fantasies. He read books on finished philology.

You go and read outside your comfort zone. Go and learn stuff. Hit primary sources, and then, the most important thing that anyone once they get any kind of level of quality – the point where you are ready to write and you can, is, tell your story. Don’t try and tell stories that other people can tell. Because any starting writer, will always start out with other people’s voices. You have been reading other people for years, you are going to tell the kinds of thing you’ve been doing. However, as quickly as you can, start telling the stories that only you can tell. Because there always be better writers than you and there will always be smarter writers than you. There will always be people who are much better at doing this or doing that, but you are the only you.

You know, Tarantino, you can criticize everything that Quentin does, but nobody writes Tarantino stuff, like Tarantino. He is the best Tarantino writer there is and that was actually the thing that people responded to. This is an individual writing with his own point of view.

There will always be people out there who are better than you. There are better writers then me out there. There are smarter writers, there are people who can plot better, all those kind of things. But there is nobody who’ll write Neil Gaiman stories like I can.

As for getting over the writer’s block, for me it has always been a process of trying to convince myself that what I am doing in the first draft isn’t important. I remember the incredible liberation of the point that I moved from type writers to computers, because I was no longer making paper dirty. It was just sort of notional, it was imaginary. I was writing these words, but they did not matter. And then a decade after that, I remember the liberation again of thinking, I can write in notebooks. It isn’t real until I keyboard it. One of the things that I actually still do is to over and over is to just write in notebooks. Just hand write, because, it is not real. One way you get through the block is by convincing yourself that it does not matter. Nobody is ever going to see your first draft. Nobody cares about your first draft. And that is the thing that you maybe agonizing over, but honestly, whatever you are doing can be fixed. You can fix it tomorrow, you can fix it next week. For now, just get the words out. Get the story down however you can get it down, and then fix it.”

My beginning and journey so far with Eventifier

The beginning
——————-

“Yawn”.

I was quite irritated being disturbed from my peaceful sleep by my phone ringing. With sleepy eyes, I looked at its screen. It said:

“Jaseem Abid calling…”

“Oh man, not now.”, I thought. Not because of any personal reasons, but just because I was craving for that deep sleep and my mind working was the last thing I wanted at that point. I put it to silent, ignored the call and peacefully went back to sleep.

When I woke up after an hour or so, I found a message that Jaseem had left.

“Hey, there are these guys looking for a Python dev. Wanted to talk to you about it”

(Detour)

This happened sometime in September 2013, while I had already submitted my resignation at HasGeek. I had talked to other folks and was looking around quite desperately to find another job. There were a handful of people whom I talked to before I made the decision to resign. If not for the support offered by people like Arpan & Vamsee, I would have probably gone into a state of depression. They were kind enough to let me learn from them by staying with them in case I wanted to polish up my programming skills. Sajjad was another person who gave me hope by introducing me to Gautam and considering my engagement with Akshara Foundation. That, however, had been on hold since they were trying to figure out a road map for the next year and said they would need at least a month before letting me know.

Even Kiran had introduced me to Sameer from Next Big What. He recommended me to them as an excellent writer. Discussions were going on with them where they wanted me to complete a few tasks before they could take it forward. Since I expressed my interest, as delicately as possible, to write code, they gave me a data set, asked me to Visualize it using JavaScript and write a report on it. JavaScript! Visualizing data sets! I was doomed. For all the Data Visualization hacknights and JSFoo conference I organized and was a part of, I had never written or read a single line of JS.

However, if not then, when I was going to learn programming? I intended to give it my best shot. I had not quit HasGeek then. I was a full time employee. Hence, I had to do this task in the midst of all the emails and organizational activities. I had one week time. At the end of piling up all the tutorials, copy-pasting code, trial and error fixes, I finally managed to do a really, extremely crude bar graph visualization of the data set. No one would be able to understand the joy that I felt at being able to do that. Also, since I had finished this by the evening of the day on which I was supposed to submit it, I had to finish writing the report in an hour, which I did. I think it was a sad piece of work and that they were not quite amused. Suffice to say, there were no further interactions.

You can find the code as well as the report here: https://github.com/harisibrahimkv/d3_viz

The situation was really quite dire. I had no industry skills in terms of programming apart from the few incomplete pet projects I tried to do during my time with HasGeek. Since my job was mostly related to organizing, emails, community management, etc, I never could find an uninterrupted stretch of time to dedicate to learn writing code. After all, I do realize that managing humans is far more rewarding and complicated than managing code.

You must be thinking how I found the courage to actually submit my resignation without having another job or the necessary skills to attain one. Well, I guess many people do it and it is not so much of a big deal. Let me tell you though, it was and still is a really big deal for me. Anyway, there was a person behind me finding courage to take the step forward.

(Following is one day before I submitted my resignation)

Sudar Muthu is a loving Husband, a caring Father and a passionate programmer. Even though I had heard his talks before at HasGeek events, we got to know each other better when I approached him for doing a hands-on public workshop on “Processing Data using Pig”. We used to keep in touch after that and we met each other again at PyCon India 2013, which happened at the very end of August. That was my first ever PyCon and I was glad I attended it. I was catching up with friends over breakfast. I could relax and take my time to do it since I was not a volunteer (although I ended up pushing boxes, selling T-shirts and packing participant kits).

In the midst of breakfast, Sudar walked past me. I called out to him.

“Hey Sudar!”

“Hey Haris, how is it going? It has been a while.”

“Not bad. My first PyCon. You have a talk today, don’t you? Looking forward to that. Feels glorious not being responsible for anything that is happening around me for a change”, I added with a chuckle.

We chit chatted for a while. At some point, the conversation shifted in the direction of me explaining that I was in a troublesome situation where I wanted to shift to a programming career and I could not leave my current job unless I found another job, which was quite impossible in the current state of affairs. He had just one question to ask.

“Do you need to have a job?”

That caught me off-guard.

“W-What?”, I asked, stuttering.

“Are you in a situation where you need to have a job? Where people are depending on you or you have big loan to repay or something?”

“Uh, no. Not really….”

“If you really believe that you are not doing the right thing, then this is the time to make the difference. Before financial aspects become a responsibility and burden. Take some time off and make *absolutely* sure that you make the most out of it. Otherwise it will be an even worse situation”

I could only look at him with wide open eyes. I would not say I was in a shock, but it was something quite close. I could feel my brain rewiring, dropping certain assumptions, bringing up new plans, constructing alternate routes, opening up new doors, and a little devil at the corner who would damn my soul if I were to fail myself in taking and executing the right choice. All happened in a split second.

We chatted for a while more regarding this. However, my innards were bursting with a sense of anxiety and excitement.

“This is it. I am going to do it”

On September 2nd, I submitted my resignation.

(Coming back to where we left off)

I called Jaseem then itself. He explained that there is this company called Eventifier being run by three friends.

“They are not hardcore techies, but are really nice guys. I am planning to work with them for a month and see if we can continue the engagement. I’ll whatsapp you Jazeel’s number. He is the CEO of the company.”

This is back when I had whatsapp and the Nexus4, courtsey of HasGeek. He went on for a while longer talking about the company. He ‘whatsapped’ me Jazeel’s number.

Quite frankly, I was not amused. Due to my extreme ego of thinking I was destined to be the greatest person in the world, I thought, “Well, yet another startup somewhere. The Akshara one looks more promising. And oh! These people are building a product having something to do with social networking!”

Whatever is the opposite of fanboy-ism, I used to be that when it came to social networking sites. I never had any proper justification for my thoughts I guess.

I tucked the idea away in a corner of my mind and moved forward. October came and whatever I explained in terms of Akshara and Next Big What happened then. I was at home for a week during October for Eid. One of the days, while I was watching some movie on my laptop at around 8’o’clock in the morning, my phone rang. It was an unknown number. I attended the call.

“Hi, is this Haris?”

“Yeah, this is Haris”

“Oh hey, I am Jazeel. Jaseem must have spoken to you about me. I am calling from Eventifier”

“Ah yes! I remember. I am so sorry. The days have been too busy that I forgot to call you”

“Its alright. He said you were looking to move out and find another job. How are you placed now?”

“Well, I am talking with a few people, but nothing confirmed yet”

“Yeah, the thing is, we are also looking to hire a Python developer. We just moved to Bangalore a couple of month’s back and are planning on expanding”

Jazeel went on to explaining what Eventifier does.

“Also, we got funded by Accel. So, would you like to meet and talk sometime soon?”

“Ehm well, you should know about my Python development experience as well. I don’t have any experience writing production code. I have used it for my projects at college as well as to do some pet projects which you can find on my Github profile. I guess that is about it”

“Oh cool. Let’s talk about it. Are you in Bangalore now?”

“Uh no, I am at home in Kerala. I’ll be back on Wednesday. Maybe we can meet Thursday early morning? Say, around 9?”

“Sounds good. I’ll just confirm with the rest of my team and let you know over email”

“Cool”

“Okay, bye. Oh and how old are you?”

“Uh, 24. Why?”

“Nothing. Just wanted to know. I’ll send you an email”

“Alright. Bye”

“Bye”

On Thursday morning, standing in front of the Accel partners office, I just cut my call telling Jazeel I had arrived. After a few minutes, someone tapped on my shoulders. I turned around and saw this handsome looking young man with a slightly golden colored beard and hair, standing behind me with a smile.

“Haris?”

“Yeah”

“Hey, nice to meet you. I’m Jazeel. Let’s go in.”

We shook hands and he led me in. I had to sign in my name in the visitor’s register, after which we went to one of the meeting rooms. He asked me to wait while he fetched someone else whose name I did not quite catch. At the moment, tension started creeping up my spine. I thought to myself,

“What the hell am I doing here? I haven’t even prepared for an interview! Heck, I should have at least read something up about their company. Oh my God…”

My thoughts were cut short by Jazeel entering the room along with the “someone else”.

J: “Hey Haris, meet Saud. He is the Chief Designer of Eventifier”

I was a bit amused. The CEO was as old as me and now he brings in another 25 year old saying he is the chief designer! “Gosh, this must be like an army of Ershads!”, I thought. Ershad is a friend who dropped out of college during his second year. A genius hardcore programmer and a Free Software enthusiast. He used to be the winner of all tech competitions around Kerala.

S: “Hi. How are you doing?”

Me: “I am fine, thank you. How about you?”

S: “Good, good.”

J: “Yeah so… Nazim will be here in a bit. He is the CTO”

Augh! What am I going to tell him, what am I going to tell him! Technology scared me.

Me: “Ah okay. Well, maybe to begin with you could elaborate a bit on what we discussed that day? I mean, about how you guys founded the company and what it is about?”

Jazeel and Saud together explained their adventure. That story is already told and hence I won’t go over it. Towards the end of it, the door opened again. A simple looking cool person with long hair and an almost-French beard entered.

J: “Meet Nazim”.

Me: “Oh hey, I’m Haris”

N: “Yeah hi, I’m Nazim”.

He had a really soft voice.

Me: “Well, as I was telling Jazeel, you guys should know I don’t have any experience writing production code. Only a few pet projects and a handful of tutorials is what I’ve got. Apart from attending and organizing the best workshops on Python and Git, I’ve never actually quite gotten down to using them.”

There was laughter around the room.

Me: “What do you guys use and what sort of a workflow do you have?”

I could not believe how humble the three of them were. Very down to Earth, soft spoken and very gentle. I have met a lot of people during my HasGeek days and I must say almost every one of them had one point or the other where they would try to sell themselves showcasing their talent or skill and asserting they are good at it. Nothing of the sort came from these three. As far as I am concerned, after having accomplished so much and establishing a company, if you can be so humble, that is quite an asset.

N: “Yeah so… We use Django and Python. And we have made a git repository on Github where we push the code. We pull from there onto the server and deploy it”

Me: “Uh okay. Um, is that it?”

N: “Yeah, that is pretty much it”

Me: “Cool”

J: “We’ll get Ajay, our adviser, to meet you now”

With that, the three of them went out. I sat there for a while. Ajay came in and asked me about my previous job and a few metrics related to it. It was a short conversation. After that he went out. Jazeel and Saud came in.

J: “Yeah, we are happy to have you onboard. Ajay also felt you would be a good fit”

Wow. That was fast. Was it that they did not hear what I said about not having any experience or whether they chose to simply ignore it? Whatever it was, I thought getting to be in the company of these people would be an unmatched asset. I had almost made up my mind.

J: “So what do you feel?”

Me: “From what you have told me, I’m interested in going forward as well. But you should know that I won’t be able to contribute to your code from day one onwards. Maybe you can send me a small task that I could work on in order to get acquainted with the technology?”

J: “Sounds like a good idea. I’ll tell Nazim to get in touch with you regarding that”

We discussed the joining date, which would be on November 11th, a Monday, since I was leaving HasGeek on October 31st and would be at home for a few days after that. We decided on a salary as well, after which we parted.

I was leaving for Goa that day along with Kiran and Zainab to attend NitroDroid. I remember calling my Mom and Dad while I stood waiting to embark on the KSRTC bus to Goa and telling them I had made up my mind to join Eventifier.

On Octoer 31st evening, I was sitting with mixed feelings. I tweeted out this the day before: https://twitter.com/harisibrahimkv/status/395799344231616512. I believe those emotions are better kept inside of me and hence I shall refrain from writing them. Around 5, I packed my bags and got out. My eyes watered slightly.

The Journey so far
————————-

I have never pulled an all-nighter in my life. Until the day came where I had to finish Nazim’s task. I finished them on the 9th of November at 6:00AM, having sat through the entire night. No coffee, no energy drinks. Just working.

On Monday morning, at around 9:00AM, I tweeted this and got out. Full of excitement, I reached there only to find Jaseem there. He waved to me from the great glass building and asked me to come in. I obliged and went in, thus starting my first day with Eventifier!

PS: Meanwhile in the Founders’ home.

“Nazim, Nazim! Wake up! Haris has tweeted! I think he is already there.”, Jazeel was frantically trying to wake Nazim and Saud up, having himself only woken up at about 9:45AM.

“Wha, what?”, Nazim stuttered, waking up lazily and rubbing his eyes. “Oh! We have to go now.”

They had hired their first employee.

***

Bryan Adam’s “Summer of 69″ is one of my favorite songs of all time. There is one line in that song which says, “Those were the best days of my life”. That is exactly what I have to say regarding the past 6 months. On different levels, it has worked out really great.

First of all, establishing a routine. I was adamant about establishing a work life balance. Although a few people advised me against doing that during the early days of joining a company, I did not pay heed to it. I should say it has worked out quite well. From day 1, I would wake up at 6, finish off my chores and prayers, bath and leave to office around 7:30. Breakfast would be from the Madhurai Idly Shop near my office. I reach my desk by 8:15 – 8:30. I check my mails and Twitter for half an hour and then jump into work. Usually it is even earlier. Since the office is a shared space, two other companies use the space as well. However, none of the employees come in before 11 or so. Hence, I get a lot of peaceful time to work. I would leave back for home latest by 4:30PM every day. This way, I avoid the rush hour traffic both in the morning and in the evening. Weekends – absolutely no work. Even if I laze out completely, I used to refrain from work. This was not the best of things to do, and I am rectifying it slowly. I was more than glad that the company allowed me to maintain this.

I took up cycling. A gazillion thanks to Sam Kocsis for letting me have his bike, a Bergamont Vitox 6.2, while he was going back to the US. It has been a tremendous experience the last 6 months cycling wherever I go. The concept of having to wait for transport has become so alien! The best part is, the grey areas of traffic where a cyclist can easily find his way through traffic. However, I must say most of the motor vehicle drivers are inconsiderate towards cyclists. They blow their horn and give looks that says, “Why the hell are you even on the road butt head?”. Anyway, I am enjoying the ride.

Cooking was another interesting practice I started. It is amazing how the human mind and body works once you decide on doing something. It adapts pretty well and delivers. Although not a master chef, I can make decent food for myself hence eating home cooked food and bringing the cost down as well.

All this would not have had its fun if my work did not go well along with it. I was amazed at how pleasantly all three welcomed me into their team like a family. At times when I get excited about something that I am working on, I stay back late and feel lazy to cycle back home. During those days, all of us go back together to their home, which is close by to the office and I spend the night there. We kick up a ruckus now and then with the football they have in their home. However, lately, Nazim skilfully bent the ball to go and hit the mirror hanging on the wall just above the basin. Suffice to say, they are ‘mirrorless’ now.

I started learning Django. The craft of software production, at least to get things done, was not so hard as I had thought it to be. I started delivering within two weeks. From then on, things moved forward with quite a pace. Exploring different ways of doing things, looking into cleaning up code, a couple of rewrites, etc.

The most interesting part is working with Nazim. Being the CTO, he is the one who wrote the entire code base single handed. Jazeel was on Marketing and Sales while Saud was on Design and Administration. Hence, for a person with 3 years of hands-on experience with Django, he has always let me do my stuff. Elaborating on that, whenever I am building something, I would discuss now and then about it with him. The funny thing is, he would know that the implementation would have a bug if done that way. However, he would never say that up front. He would let me do it. I would happily do it, test it on local or staging and it would fail. I try to isolate the bug and ask advice on what might have gone wrong. He would sit back on his chair, legs crossed and say,

“I am not sure, maybe something went wrong with <that particular part of the code>?”

Guess what? That would be the exact part of the code which would be causing the bug. As such, my respect for him has continuously grown.

I believe I am off to a good start on my plans to get into teaching. The learning experience has been amazing although I myself think I have not worked hard enough. Well, it has only been 6 months and I believe there is a lot to come.

Saud is the one who comes earliest to office among the three. Around 10:30 to 11:00AM. A pleasant soul to talk with. He always inquires about how life is, about family and in general whip up a sweet conversation. Someone to whom you could open up to completely and he will sit and listen patiently until it is over. Now that Praseetha has joined us, he has the job of being a mentor as well.

Jazeel, being the face of the company, is the cool dude around. Lately he has switched over the US timings since all his calls with clients are during the night. He usually comes to office around 3PM or so and starts his day then. He has his own strong opinions on matters which he is not even in the slightest sense afraid to shout out. Conversations with him leads to insightful discussions. I guess getting through to the customers is the greatest skill that a sales ops should possess.

Oh, and at times, we go around working from different places as well, like the Ants Cafe and Mr. Beans It has been amazing so far and I pray that it continues to be so. Our team goes strong with 6 including me, Jazeel, Nazim, Saud, Nawaz, who is a sales ops and Praseetha, whom I have written about aplenty before.

—————————————-

Comments from Twitter:

A short review on “Aadu Jeevidham” – A Malayalam Novel

How I came to read the book
————————————–

I closed the gate after getting out of my Mom’s home’s compound. The turn-wheel turned and the latch fell into place with a clack. It was almost 9PM and I was sure Mom would have been waiting for me to come home to dinner. I stepped into the street lane of the main road connecting the village center and surrounding places. It was dark. Fortunately, still today, night is related to darkness in my village. However, since I was quite close to an intersection which connected the lane that lead to my house, to the main road, there was one street lamp and a few shops that were still lit. Junctions sleep late. Around 11PM, it was guaranteed total and utter darkness except for the light coming from the mobile phone screens of late night drunkards.

The shops alongside the road, adjacent to the house’s compound belonged to my Grandfather. Once he passed away, the ownership was transferred to my Grandmother, who, immediately transferred them to her two male children (my uncles). These shops consisted of tailors, phone booths, groceries, textiles, photography studios and foreign goods, most of them having been there for almost 15 years now. I took a few steps and crossed the first mobile phone accessories shop, when I reached in front of the Matrix. The tailor shop was named so far before the movie came out. They had shifted shops thrice within a 500m vicinity. The owner Ismail, known to everyone as Bava, was quite a popular character in our village. Apart from his lean, really lean figure, what made him a fan favorite was his quick witted conversations. A laugh was guaranteed whenever you spoke with him.

Along with him inside the shop, I could also see Shihab. I will refer to him from now on as Shihabka, where “ka” means brother in my mother tongue. Almost all the times, that is how you address your elders. He is the poster child of social activeness. Along with a real pleasant humor sense, he has an incredible charisma and a dedicated will to help anyone in need. I have never been able to figure out what his motivation is for being so helpful. Suffice to say he was the one who helped me find my accommodation when I moved to Bangalore.

The front of the shop had a glass wall. While locking down, they had a shutter in front of it which they would pull down and lock it to the latch on the ground. I waved at them. I could not resist going in. Who wouldn’t like a hearty laugh in between this busy life? We exchanged greetings and chatted for a while. Bava was busy since he had a lot of orders come in the previous days and the customers kept on calling asking whether their dress was ready. Shihabka and I were discussing about when we were both returning to Bangalore, as both of us worked there, in the middle of which he suddenly asked,

“Have you read Aadu Jeevidham?”

“No. As a matter of fact, I have not read any Malayalam stories”

“Then you should read it. Come with me. I’ll get you the book from my home”

He seemed pretty decisive about it and I thought it would be a nice experience too. I hopped onto his motorbike and headed for his home, which was on the fields, at the bottom of a small hill. It was almost 9:30PM. His Mom made Sulaimani (black tea) for both of us. Over tea, he explained about how elegant and creative the writing was. About how it would draw you into the author’s world and make you feel like you are living it. It was a short conversation and we left his place by 9:40. He dropped me off at my home and we parted exchanging Salams.

I must say I am glad that this happened in my life.

 

About the book
——————–

Last month, I finished reading a Malayalam Novel for the first time in my life. At some point in my childhood, due to the inspiration from my Brother and Sister, I started reading comic books, short stories, kids’ novels as well as classics. However, each and every one of them were in English. The only times that I had read anything in Malayalam were the stories and poems from my school text books. Since all of them were read with a sense of tension about the teacher asking questions on it the next day, I don’t remember any joy that I had derived while I was at it.

“Aadu Jeevidham”, translated directly to “Goat Life” in English, is the story about a typical Keralite Muslim man and his journey to the Gulf in search of livelihood. I must say, the most wonderful thing about the book is the language itself. I do not deserve to talk about it from a literature perspective as neither have I read other Malayalam novels nor have I learned the language too deep. I entirely mean that the language is wonderful from the perspective of the language being in ones own mother tongue. There are certain quirks and colloquial constructs that you have in your mother tongue which expresses the meaning of a word or a context much better than any other means of communication. Hence, although I have read quite a few English novels and stories in my life, this one novel got through to me the most.

To further elaborate on that, I was able to understand the emotions and feelings of the characters much better. I was able to picture the scenes much better and most importantly, it was like a conversation between a human and I. As if someone was telling me the story rather than me reading it from the book. Of course, this could be the case with every other book written in ones mother tongue since there is nothing that I have described here which is peculiar to this novel. I will just have to read more and see whether in terms of the language constructs he had used, this novel stands out from the rest of the others.

The novel talks about the dreams that a person would have and how reality dawns upon him to crush not only the dreams, but his entire life as well. Najeeb, the main character in the novel, is a jobless husband, with his wife expecting their first kid in 6 or so months. One of his friends tells him about an opportunity in the gulf, upon which, after discussing with his wife, he decides to take it up no matter what happens. After somehow begging and borrowing enough money for the commission and airplane tickets, he spends one last night with his wife before he leaves for Mumbai to catch the plane.

The conversation during that night is bitter sweet. They talk about how he would go there and earn a lot. How he would come back in a year and bring gifts for his newborn and his wife. Purchasing a Fridge and a TV, laying foundation for their new home and all other ‘luxuries’ that they could think of.

He leaves the next day for Mumbai and stays a day or two with his friends there. However, before he left for Mumbai, his neighbor’s son had gotten a Visa to the gulf as well. Hence, both of them were traveling together. The other person was a brash young kid, full of life and full of expectations.

The actual story begins when they reach the gulf airport and don’t find anyone waiting to pick them up. After waiting for a long time, they see a torn apart mini lorry revving up the road that leads to the airport. It stops midway and an Arab jumps out from it, wearing a white Kandhuura covering him from top to bottom and with a turban on his head. He walks here and there for a while looking frustrated and finally spots our two young gentlemen standing over there. He comes over, takes their passport, looks at it and then looks at their faces. After what looks like a face analysis, he gestures them to get in the truck. Happy that someone finally paid them some attention they jump in. The Arab takes them on a long ride. A very long ride, into the heart of the desert, where they reach during midnight. Najeeb gets down at some unknown place and sharpens his hearing. He hears the slight braying of a goat.

I do not want to give away what happens then and how the story develops. The author’s depiction of the desert is off the charts and extremely gripping. Maybe someday I’ll gather enough literary skills to do a rewrite of this wonderful piece of work into English.

A million thanks to Shihabka for making me read the book.