Blog

Notice: after planning it for years, I moved this blog out of blogger/blogspot (which google has abandoned long ago) to wordpress on a fine evening in Dec 2024. This notice will stay here to warn that things might be broken. Let me know if you find anything.

  • Golden City

    The Jodhpur Jaisalmer express is perfect for traveling from Jodhpur to Jaisalmer (duh) overnight. It leaves from Jodhpur junction itself which is large, colorfully lit, and has an escalator. And you reach Jaisalmer railway station around 6 in the morning which is cold enough to warrant monkey cap, gloves, jacket, and shoes to be worn while going to sleep in winter.

    We had booked stay in Oasis Sam desert camp through goibibo.com and it was very cheap for us because of all the credits my friend’s brother had saved up. The camp people themselves helped us hire a Bolero jeep to travel. But the check-in time wasn’t till 3. So, we went checked in at a hotel near railway station, slept a little, had some nice tea, and freshened up till it was warm enough to go outside.

    First, we had breakfast at a restaurant nearby. Chola bhattura, parathas, some more nice tea. They played some Rajasthani folk music in the background on request. And the golden Jaisalmer fort was right outside so we took some selfies.

    While still adjusting to the golden glow on the buildings that the limestone gives off on morning sunlight, we reached at the bottom of Gadi Sagar lake. There’s a small walk to the waterfront which is filled with colorful Rajasthani clothes, handiwork, embroidery, etc. That is also where I noticed the animals – dogs, goats – all of which had thick fur, acclimatized to the lazy cold weather of the desert land.

    Colourful, no?

    There is a small temple on the bank of the lake, golden in color as you would have guessed. You can remove your shoes and walk inside. I stayed outside looking at the man who was sitting at the entrance dressed like a sadhu welcoming people with “Jai Shriram” and other mantras (like Mickey Mouse figures in Disney world). There are what look like extensions of the temple in the lake, popping up from the water like somebody built a large temple and then the lake flooded it till just below the top. These were fully occupied by pigeons and the floor with their shit. The water was home to catfish so large that they probably could eat the pigeons if one of them fell into the water. These fishes were being fed dough by some people at the shore. That’s apparently one of the main activities here apart from boating. And taking photos, of course.

    Next, we went to the Jaisalmer fort. We were swamped by guides as soon as we reached. They do have ID cards but they do charge a lot if you don’t bargain. We didn’t take a guide till we walked about 200 metres from the parking spot to just inside the entrance of the fort. It’s actually a good idea to do impulse control and see around for more before you pay money anywhere in Rajasthan, more so in Delhi. Although, if you take this to the extreme you will also find very cheap guides who also don’t tell you a lot of things – like we found at Taj Mahal later.

    The Jaisalmer fort is a live city surrounded by three layers of walls. A quarter of the population of Jaisalmer live inside the fort in their golden houses. The inhabitants are the descendants of the same people who lived in the fort in the past. A part of the fort was for the Warriors (who eat non-vegetarian), another for the Brahmins (who eat vegetarian), and a third part for the Royals (who ate “mixed vegetables” in the words of our guide). Now, many parts have been taken over by restaurants who sell the same kinds of foods.

    There are two palaces inside the fort – King’s palace and Queen’s palace. You see a lot of armors in the King’s palace. Everything ranging from bows and arrows to guns. And then the short heighted bed which the King would sleep in (so that he doesn’t get killed by anyone hiding under it), the halls where he would listen to people, and many other rooms with a lot of architecture. At one place our guide told us that the fort was built with limestone mostly but there’s one more kind of stone used rarely – “fossil” stones (I think that’s what he told), and it had magical properties like “being able to turn milk into curd overnight”.

    At the roof of the palace you can see all around Jaisalmer. We had some masala chai and turned 360 degrees again and again listening to the guide and seeing the desert, the Pakistan border, the roads, the houses, the desert, and more of the desert. After getting down we found the route to the large canon on the other side of the fort. The canon was also at a height letting us watch the city and our jeep and five guides converging on new groups that arrive. We sat there for more than 15 minutes taking photos and enjoying the breeze.

    Back near the parking spot we had some chole kulchas which were the best. And then we set forth for Sam.

    Sam is around 40 km from Jaisalmer and I slept through most of the wind turbines and sand. The place is full of desert camps, camel safari, and other desert adventures. We reached our camp just after noon and we were the only people there then.

    The tents are surprisingly well furnished. The beds, blankets, and carpets look just like any hotel. But the walls are made of layers of clothes. The door is just another cloth with ropes on the sides allowing you to tie it to the wall around (if you want to “lock” the room). The windows are improvised curtains which can be folded up by pulling the ropes on their sides and unfolded by pulling the ropes in the reverse direction. Another door on the far wall leads you to the bathroom which has solid walls on the other three sides and cloth roof. The floor was tiles. The water was salty. The bathroom was roomy, but I didn’t take bath because it was very cold and I didn’t wake up in time for the geyser next day.

    There were about 50 tents like these arranged in a quadrilateral in our camp. The tents on one edge were actually solid rooms unlike our Swiss tents. In the middle there was a platform surrounded by chairs where the cultural programs would happen at the night. The common dining hall was at one corner.

    We sat enjoying the architecture of our tents and putting socks and towels to dry on the guy ropes while others, mostly families, started filling up other tents one by one.

    An hour before sunset it was time for us to move to the dunes at the opposite side of the road. The camp had arranged tickets for us in the ship of the desert to travel to the sunset point. We had 4 camels – Michael Jackson, Lucky, Bubloo, and Salman Khan. I was sitting on Lucky with my friend. Getting on a camel is easy since it lies down with its legs folded and you can climb like you climb on a bike. But once you’re seated, the camel gets up to its full height – hind legs first – and you have to hold on like Titanic is sinking head first. Pretty much the same when getting down or when walking down a sand dune. At all other times you can actually swing your hips with the camel’s and dance in that rhythm without holding anywhere.

    Not posing

    The ride was fun so we paid them extra to take us a bit farther to the “old Pakistan border” where we saw an old bunker and a wire fence and more sand. We saw the sunset on a “private dune”, playing with the sand and running barefoot from dune to dune. After sunset it got cold very fast and the sounds of cultural programs could be heard. So we returned to the camp where we were greeted in traditional Rajasthani style by a lady in Rajasthani clothes putting tilak on our forehead.

    The cultural programs had started on the platform in the middle of the camp. People were seated around in chairs, and on the platform on diwans with masand. We drank some hot tea and ate some snacks sitting down. There were two singers, and drummers, and kartal players, and dancers. The songs were in Hindi and Rajasthani. The main singer also sang some shayariyas in Hindi which were really funny when translated to English for me. The dancers did Rajasthani folk with characteristic hip movements. They also did a few tricks by picking up notes and stones from the floor bending over back with their mouth and eyes, respectively. The lead singer then took over the kartals and did a wonderful performance along with the dolak. Rajasthani kartal is very simple – two flat wooden planks slightly longer than an iPhone 6+. You hit these together very fast, at various sound levels and you get music that sounds almost like tap dance. In fact, the performer was moving in such a way that it appeared like he was dancing with his hands and corresponding music came from in between his fingers. There was also a man who played with fire – swallowing it, blowing fire from his mouth, etc.

    People started dancing from the beginning and every time someone would get up to dance the singers would ask them to sit down and wait for their chance at the end. Something that irked me was when people used to give the performers money while they were performing. For example, when the lead dancer was dancing with pots on her head and balancing on glasses at the foot, people would come and put money which she would hold between her teeth. After all professional performances, they put random songs and everyone started dancing while some, including us, went to the dining hall for dinner. The dinner was nice buffet. And there were many curries whose names I don’t know.

    After dinner we went and danced till it was too cold and we went to our tents and sat talking.

    Towards the night the welcome hosts came with tea and sent us off to the night desert. We walked up to the dunes, this time against colder breezes. At the top of a dune, we just lied down on the sand watching the stars (also crossing it off the bucket list of one of us). I stared into the Pakistan side thinking of soldiers at Siachen glacier for a while with the breeze making that eerie sound you hear in mountains. We then went back to our tents, had more tea, and slept. The hosts couldn’t arrange camp fire because nobody else was interested and the guy who promised he would arrange it if we wanted slept by the time we went back.

    The blankets kept us in the bed for longer than we wanted to. We woke up when our jeep driver came looking for us so he could catch his next riders. After having a quick delicious breakfast we packed our bags back to Jaisalmer. This time going back I was awake to see all the wind turbines. Apparently these provide a lot of electricity in Jaisalmer.

    We went back to the same hotel as last day, and stay put till noon rearranging clothes, munching snacks, settling accounts. We divided into two then and the first pack including me went shopping in the Jaisalmer market – carpets, clothes, and so on. The second pack joined us outside patwa ki haveli. We had bhelpuri and went inside. The entry fee to the building was ₹100 and so we didn’t go inside, rather took photos from outside. We then had to run for our train to Jaipur, so we got some food parcel and ran.

  • Blue City

    Jodhpur Express left Bangalore City Junction at ten to ten in the night of 27th. It would take about 43 hours to reach Bhagat Ki Kothi (which is to Jodhpur Junction what Yeshwantpur railway station is to SBC.)

    When I woke up in the morning, we were near Hubli. And when I woke up again, we were still near Hubli. That’s when I decided Karnataka was too large and went back to sleep.

    The men were playing a card game called ‘Mongoose’ which is just another name for ‘Donkey’. The way they distributed the cards was different though. Instead of dealing cards one by one to each person, there was an open deal in which each person pulled out a card to their hand in turns. If the card is one higher than the topmost card of any other player’s hand, it could be placed on that other player’s hand instead of our own. Thus distribution of cards itself became a game.

    We bought two decks of card that night and played mongoose, bluff, and even that card trick about “387 years ago there lived A Queen who was 64 years old and had 2 children – Jack and King who were 10+9 and 5 years old respectively”.

    We had home food packaged and ready to eat, everywhere. So all we had to buy from outside was local specialties. Aloo samosa and Bhaji from Gujarat and Rabdi.

    Rabdi was from Abu Road railway station (which is where you get down to go to Mount Abu). Rabdi is a sweet which you get by concentrating all the goodness of a Litre of milk into an ounce.

    We reached Mumbai a couple of hours before midnight. And the widely popular Mumbai local trains were plying along ours with a hundred people hanging from its doors.

    Rajasthan was as green as any other state. Acres of farms on either side of the rail line. Crops which I have no idea as to what they are.

    The train went at 95 km per hour for around 3 hours straight going into Jodhpur. And we reached just in time for baraat.

    Before going to baraat, one has to wear the pagadi which is a colorful turban. If untied and unfurled the pagadi will be perhaps as long as a sari and as difficult to tie back into shape (which I realized when I removed it posing for a photo later in the night and had to wear it like a shawl ever after).

    Dressed up, the groom and his party leave for the bride’s place. The groom on a horse with a sword by his belt while everyone else dancing in front, between the music and lights walking around. The actual marriage was in the wee hours of the next day which we slept through at the hotel so we could explore the city in the morning.

    Umaid Bhawan Palace. That’s where the auto drivers took us first. Umaid Singh had this palace inaugurated by 1944. Speaking of Umaid Singh, he was the chief scout of Marwar state, King of the same, and also died of appendicitis shortly after independence. He built the rail lines to Jodhpur to bring marbles and other materials for the palace and that’s how Jodhpur got its train lines. He built the airport in Jodhpur because he was an aviation enthusiast.

    Neat place to live in, huh?

    And he also made me wonder whether development can come in a democracy, whether autocratic rulers are a necessary evil to get things done. Maybe back when machines weren’t as plenty as today and all construction had to be done by human labor (along with animal labor), Kings, dictators and their unjust rules would make sure some work gets done, but today machines can replace human effort and therefore it must be possible even in an egalitarian society to build huge structures.

    The palace is now divided into three. The museum open to public which we visited, the Taj hotel (which contains the swimming pool) and that part where the royal family resides. The museum too is closed to public when the royal family celebrates birthday. North India hits your head with the fact that birth privilege based hierarchical society is not a distant past.

    Inside the palace museum is the architecture, paintings, wood work, etc. There are photographs showing various political moments in the history, Jodhpur Polo team and their trophies, and so many details of the history. Then there is a dining room where many high profile people dined and where the menu was exotic. Also is a room full of clocks (time pieces) embedded on small scale replicas of all sorts of things – ships, submarines, guns, buildings.

    Outside there is a garden which we can’t walk over and this collection of old luxury cars. So many Rolls Royce cars that the Mercedes Benz car at the end felt like market car. Most of these cars look long and large with their wheels very far apart towards the ends of the body unlike in today’s cars.

    We had kesar kulfi and koffee on the way out. Funny it was served by the same person who was guiding us in the palace with nobody asking him to. In fact, when we had told him that we didn’t need a guide he said in Hindi, “If you are happy at the end, give me some money, otherwise I’m just happily helping you here for free”, a refrain we heard throughout Rajasthan.

    Then the waiting autos took us to Mehrangarh Fort. This was one of the many forts we would visit in the next few days. There was a lot of intricate designs in phool ki mahal, sheesh ki mahal, and moti ki mahal (palace of flowers, mirrors, and pearls, respectively) but not very memorable. In between, near the palace of the Queen, we found a large closed door with some steps leading to it where we sat and took some pictures.

    On the way back from the fort, there was this small lake and marble temple where the King was worshiped. And in the courtyard a man in typical Rajasthani costume was playing the Ravanahatha which is a stringed instrument (violin, cello, etc having been inspired from this) that now fills all the forts with an ambient music.

    Hungry, we had to go to Gypsy restaurant which was the first recommendation by at least two people. But it was too late for lunch and too early for dinner and so we went to another place the rickshaw drivers suggested and had chola bhattura, golgoppa, etc.

    The Jodhpur market was on the same road. Clothes, spices, and other things to buy that reminded me of DD Urss road back at Mysore. Except Jodhpur has a colorful clock tower at the spicy end of the road. We also went to ‘On The Rocks’ which was a nice, though slightly expensive place to hang out, to waste some time till our train to Jaisalmer.

  • Why Do Children Fall Ill?

    I had lunch and finished packing my bags at 3. Then I spent 5 minutes saying goodbye to my roommate which is when I told him that I'm going to North India for a trip. Of course I had to tell him at the last moment, because apparently last month he had gone to the same places I'm going towards the end of this trip. That must give a good idea about how much I talk with people in general.

    The railway station is 15 minutes away by walk. And I had to walk. After all, if I miss the 3.30 train there's another at 4. Walking to railway station is important. Once you board the train, you are a different person. And it is this walk that helps me transition. With a large bag on my back containing all clothes and a small bag in my front containing all the books and miscellaneous stuff, people would surely think I'm a seasoned traveler. And that gives me a false confidence.

    Maybe I'll be a traveler after this trip. Maybe I won't. That's why I'm going, you see? I'm giving it a fair chance. One month of moving around all over the offline maps I've downloaded should either make me love traveling or hate it. Either way, it will make up a nice activity for this month before my MBBS result is announced.

    I didn't miss the 3.30 train. It was a full five minutes after I sat down in the general compartment that the train started moving. It was in those five minutes that this young mother sat in front of me with her son who must be 1 and a half years old judging by his fragile movements and short vocabulary.

    When I woke up from my nap at Maddur station, she had just woken the boy up. And the Maddur vade vendors were all over the compartment. She bought one. And so did many others. (Some even bought five of them parcel.) But the boy wanted tea. And the tea vendor had just walked by into the next compartment. There was a coffee vendor around. So she bought a cup of coffee. She asked for another cup, an empty one to pour the hot coffee back and forth and make it tepid. But the coffee vendor wouldn't give her one.

    Why would he? The number of coffees he can sell is limited by the number of coffee cups he has. One cup less is one coffee less sold. That is why he told the men surrounding the lady who asked him repeatedly to give her an empty cup this: "What will happen if I give a cup? Nothing will happen. Nothing will happen to you people who talk. It is I who sell the coffee. Those who talk can keep talking. I have to sell my coffee"

    The old lady next to me gave her a small steel cup. And then everyone started talking. Everyone except me and another lady in the corner near the window.

    The boy's father had gone to Bangalore in the morning, with their two-month old child, after a fight. And she was going to get the child back from her husband's house in Bangalore. She only vaguely remembers where his house is. But she knows for sure that her mother in law and sister in law can't take care of her child like she can. And that is why she was on train with this stubborn boy who threw half the vade down and would not drink the coffee either, instead choosing to cry and flutter his legs incessantly.

    Everyone around was trying to distract their mind from her story by trying their best to stop the boy from whining. But of course they could not. The old lady gave them some tomato rice she had and the middle aged lady a chappathi, knowing very well that the boy wouldn't eat but the mother should. The men could not refrain from giving advice, "You should be humble and not create a reason for a fight." They themselves admit, "Of course, he drinks as alcohol all that he earns as a PWD worker and alcoholics don't need any reason for starting a fight." Yet they want her to change her ways.

    They want her to go live with her husband in his house. To work in nearby houses. Earn some money. Buy a small house in Mysore. And by then the kids would be grown up so it won't matter how her husband behaves with her.

    I didn't speak a word. What can I, a feminist, a social media activist, and a future health care worker, tell her?

    When she was talking she mentioned that she had given a bottle of milk to her husband that morning. Probably so he would feed the child at least.

    They say bottle feeding is bad for infants. So, in a few weeks this child might end up with diarrhea in the pediatrics ward of Bangalore Medical College. And the third year students there will ask her "Why did you feed the child with bottle?" And she might choose not to tell them the story of how children fall ill.

  • The Reason Why You Cannot Convince Anyone To Switch To FOSS

    How many times have you talked about your favorite free software to a friend and they appeared totally convinced about how cool it is, but just won’t stop using their proprietary tool?

    Firefox is cool. But Chrome’s market share keeps increasing.
    XMPP and IRC are both cool. But they’re both dying.
    LibreOffice can do everything you need, but you still look for how to get Microsoft Office for the cheapest price.
    Facebook is evil, but you have to post this photo there itself.

    Why does this happen? Why is it so hard to make people start using perfectly good, free and open source software for their daily needs?

    Why don’t people understand?

    To answer it, you should ask yourself why you use any of those FOSS things.

    Why do you use Firefox? Because it’s secure, protects your privacy, and puts you in control? No. You use Firefox because you know Mozilla’s mission, and you are passionate about it. Or, because you know how to develop an add-on that changes the colour of the toolbar. Or, because you can do cool things with the in-built Developer tools.

    You use Firefox because it’s fun for you to use it.

    Why do you use GNU/Linux? Because it’s free software, secure, and puts you in control? No. You use GNU/Linux because you know the economic and social goodness of free software. Or, because you know how to do cool things from the terminal. Or, because you’re one of those people who can actually code the kernel and make it behave the way you want.

    You use GNU/Linux because it’s fun for you to use it.

    Why do you use encrypted/private channels for communication? Because it protects you from governments? No (unless you’re Edward Snowden). You use encryption because the very idea of having a conversation that nobody can snoop into makes you curious. You use encryption to understand how the whole thing works. You use encryption to prove that it is possible.

    You use FOSS because that’s what you do!
    You are probably a coder. You already enjoy building FOSS things.
    You are probably political. Your philosophy makes you averse towards proprietary.

    Think of anything that you use so naturally and you can’t convince a friend to switch to.

    Ask yourself why your friend should be using that software.

    If the answer is any of “free software”, “secure”, “control”, etc. your friend will never use it.

  • [jog-journal] Running With A Smile

    I went jogging in the evening today. My main goal today was to run slow with a smile on the face. To look at others and show my smile.

    I remember reading a long article earlier today about what goes inside the mind of a runner.

    I know what goes through. “Is my heart beating too fast? Am I going to fall unconscious and die? Should I stop now or run a bit more?”


    Funny thing is, every day,
    Just as I begin running from one corner of Kukralli,
    I see people going in the other direction,
    People whom I’d have never seen in my life before.

    I run halfway round and reach the other side,
    And then I see many of the same people.
    Whom I’d never seen in my life before,
    Except 10 minutes ago.

    And this time, they’d not be the way they were last time.
    Some would be sprinting full of sweat.
    Some would be slowing down, panting.

    And then I look at myself.
    I’d have changed too.

    But one thing remains.
    We’d all be still on the track.


    It so happened that I remembered one of the lessons from Chi-running I was practicing from school. I’d to look on the ground directly in front of me while running. It works and I ran longer than I usually would today.

    But when I tried smiling at the end of it, my cheek muscles were burning!

  • Who is Killing Our Bloggers?

    How do you discover content to read, on the Web?
    Do you have a specific set of websites that you visit every day?
    Do you have a single website that you visit every day and people there fill you in with links?
    Do the pages that you read online mostly come from your friends?
    Do they come from random strangers?
    Or, is it a mix of friends and strangers?

    If you like an author, what strategy do you follow to get updates from them?
    Do you follow them on their Twitter/Facebook account?
    Do you subscribe to their blog/website/column using a feed reader or an email subscription?

    Web is the most powerful and the most useful when it is decentralized.
    When people have their own websites, the Web is decentralized.
    People who have their own website (self hosted blogs, maybe) have complete control over what they can do with it. They can express themselves in whatever manner they find appropriate. The presentation can be as unique as they can make it. Individuality, creativity, freedom, control – it’s all theirs. They are limited only by their imagination (and technical constraints).

    Nobody can censor you on your own website. (Except authoritarian Governments who seek to control citizens by limiting their freedom of expression).

    But people can’t keep visiting your website everyday. There must be some way for you to let your readers know when you publish a new post.

    Email subscription offered by many websites and blogs is an easy way to send subscribers an update whenever you publish (or in a bunch). But email subscriptions go straight to the main inbox of most people and create clutter. This forces many people to unsubscribe them soon after they subscribe.

    That’s where web feeds come in. Web feeds, in ATOM or RSS standard, are small files served at a fixed location on your website. People can run feed aggregators (also called feed readers) to collect the feeds of various websites/blogs they like. These applications automatically checks the respective feeds for new content and if there’s any they show up as unread. In fact, till Google Reader shut down web feeds were very popular (or is it vice versa?)

    What happened to web feeds?
    Well, the task that web feeds did was taken up by social media. Whereas with feeds you had to directly follow the content creator (or the publisher), with social media you just had to follow someone, anyone (mostly your friends) and if they followed a publisher (or their friend did, or a friend of their friend, and so on) and shared an article from the publisher, you would find it in your feed.

    What changed?
    With web feeds you’d have been restricted to listening to a set of publishers you already were connected to. But on social media, what your friends discovered for you were a wide variety of websites and publishers.

    But there was another side for this too. With more and more friends pouring more and more content on to your single feed, social media like Facebook started employing algorithms to prioritize certain posts and show them higher up in your feed than others.

    That was a disastrous moment. All of a sudden people running these websites became immensely powerful. They could promote or demote anything in the feed that millions of people rely on every day. If they wanted a website to suffer or an idea to be not heard, all they had to do was let their computers know.

    Censorship. Arbitrary community standards. Seizing Control. 

    Publishers now have to pay to reach their own readers. Even then their content could be taken off people’s feeds any moment. And readers would never know, because they are not used to seeing all the content from a publisher. They are put in filter bubbles. Who wins?

    A person is what they read.

    And by letting someone else decide what we read, we’re giving them immense power over us. When an entire society does that, it is inviting catastrophies.

    For example, Facebook has such power and influence over people that recently in Kerala, a campaign against Facebook was running in (any guesses?) Facebook itself! And it doesn’t end there. They were even paying Facebook to boost posts and get more visibility.

    Imagine what can happen if Facebook decides to support a political party in the next general election? What if they’re already doing this and you don’t know? And the same Facebook is greedily trying to control more of what people can access or see.

    If there’s anyone killing our bloggers by denying them a chance to build a permanent readership and by promoting conformation, clickbait, and virality over quality and substance, it is social media, especially Facebook.

    Still, all is not lost. Social media are but feed readers with social capability. It’s not something we can’t have parallels to.

    Web feeds still exist. Blogging platforms too. I’ve already written about alternative communication platforms.

    And we can start building our plan B right now.

    Choose a feed aggregator for your operating system. I use Akregator. You might like Thunderbird (used as a feed reader), RSSOwl, Tiny Tiny RSS, or Liferea. There are many more feed readers (they’re also called RSS readers because RSS is one of the most popular format for web feeds. Another format is ATOM. Most feed readers support either formats). Download and install it.

    When you land on a blog/website you find interesting, look for the feed to subscribe to. If you have difficulty in finding the feed, you can use this nifty firefox feature that adds a “subscribe” button to your toolbar which will automatically detect feeds for you. (If you still have difficulty you can reach out to me and I’ll help you). Start by looking for the feed of this blog.

    At last, there’s one more thing you should do. Create a blog. If you have at least something to say, you must start a blog and make sure what you say stays on the open Web forever. And don’t forget to share your blog’s URL with me so that I can follow your feed.

    Together, we can save from dying the largest social network in the world – the open Web.

  • [jog-journal] I Woke Up Early Today. You Won’t Believe What Happened Next

    My professor had last day told the story of his friend who finished MBBS, Post Graduation, and some specialty, got married, had a kid, and at the age of 30 something, when everything was “settled” got a myocardial infarction. Don’t put health behind anything else, he said. And don’t go running from the next day, he said too.

    But, selective hearing at its best, when I woke up at 5.45 today, I had to do something useful. First I read one page of my textbook and just as I was about to go back to sleep, I got the idea to be running again. That’s exactly 3 months past the last time.

    Why do people have so much difficulty in doing what they are supposed to do? I had for a long time believed that people forget what they’re supposed to do and get involved in random distracting things. But if that was indeed the case, to-do lists must have worked like magic. But to-do lists don’t work. They just grow and grow and grow.

    If it’s not about remembering, maybe it’s a problem with the way we recall what we’re supposed to do. A to-do list is a bare short description of what we’re supposed to do. It doesn’t give us the entire context of what was going through in our mind when we jotted it down. It takes away the motivation.

    Maybe that’s why multi-tasking doesn’t work too. We need to enter certain “modes” to do things. When we’re supposed to be learning, we need to be motivated and comfortable to read. That is a different mind set when compared to when we’re supposed to be writing something creative. It is probably difficult for the mind to switch from one mindset to another.

    That’s probably why meetings, community calls, hackathons, etc leads to far more productive output than people left on their own produce. When you invest half an hour or a day to get your mind into a particular situation, it is filled with the motivation, the back-story, and the context of what it is supposed to do. And then, doing what we are supposed to do becomes easier.

    I have been learning d3.js since yesterday. It is a cool thing. 

    The road to kukralli has changed a lot. There are now beautiful pavements on either side. And kukralli itself has been decorated with flower pots on the sides at entrances.

    The pelicans are now floating on the lake. Maybe the pollution has come down a bit. And there was this kid running with loose shoes, not exactly lifting his legs while running, but dragging them. His shoes are probably gonna get worn out much sooner than he wants them to.

    And there was this white labrador dog which was so scared to jump across the roadside drain. The owner had to walk parallel till there was a small bridge across. Stupid dogs.

  • Mozilla Kerala Community Meetup ’15

    I left for Kochi from Mysore on Oct 1 (the same day I received email from the participation team inviting me to participation leadership cohort and passed third year subjects). After about 8 hours of sleep I woke up at 4 in the bus to be involved in a very active discussion about misogyny/nitpicking in Mozillians telegram group.

    After getting down from the bus I visited my brother and grandmother and had breakfast with them. Then, I reached Asset Summit Suites where everyone was getting ready.

    Day 1

    As usual, people reached late and the event started an hour late with introductions. Late comers had to dance. I was meeting everyone (except Anush and Kumaresan and Abin) for the first time. But Telegram and IRC and emails meant I knew most people and vice versa.

    After tea we started talking about how decentralization of powers and privileges should be our agenda and how Mozilla Kerala should be a community based on SOPs. I threw in the idea that Mozilla Kerala should, whenever possible, work inside Mozilla (for example, wiki, discourse, etc) so that it’s good for everyone.

    Speaking of discourse, we chose to use the discourse.mozilla-community.org discourse’s Kerala subcategory as the official discussion medium, IRC #kerala (with Telegram proxy bot and such stuff as required) for meetings, Gitter.im for development discussions, Mozilla Wiki/Kerala for documentation, Bugzilla.Mozillakerala.org for bugs, and so on.

    After lunch we talked about what new initiatives to plan, what to focus on, etc.

    Then, we developed [SOPs](https://wiki.mozilla.org/Kerala/SOPs) for all things conceivable. Or that’s what we thought. There’s so much of gaps in the SOPs and this will be a process that goes on for some time now.

    After dinner, I learned some meteor from Akhil and slept.

    Day 2

    Woke up tired, had breakfast, and ran to the conference hall. Today was dedicated for all the tech-work.

    There was unanimous agreement that the geeks had to stop working in the background of the homepage and upload a useful homepage. So the geeks went to code straightaway promising a basic page set up by 4 pm. (By 4, vakar did come out with a decent page full of stuff to engage with).

    Then came the controversial (and boring for some) discussion on creating a complete portal on Mozilla Kerala. The idea is simple – have a portal where when a Kerala Mozillian joins, they can figure out everything that’s going on – upcoming events, leaderboards of various Mozilla activities, and so on. But the problem is that the hours that might have to be spent on it wouldn’t be trivial. An easy way out would be to use existing Mozillians API and do very simple manipulation and chaining of API calls to present leaderboards without much technical complexity. This has the added advantage that we’d be reusing Mozillians website and data rather than reinventing the whole wheel and protecting ourselves from NIH syndrome. It’d also go well with what I wrote down on a sticky on the wall “We should try to integrate with the larger Mozilla community whenever possible, rather than trying to break away”

    While there were good arguments on both side, all that’s now left to be seen is what gets coded in the coming few weeks (or months, who knows?)

    Meanwhile, we also wrote down the impact and outcomes we need to have by the end of 2016 (taking a cue from participation team) and that helped put things in perspective.

    After lunch there was a discussion about Maker Party Malabar, on the model of Maker Party Kochi. Actually, this discussion was going on even when I left for Mysore in the night. I suggested on adding a net neutrality station in this party. Should figure out a way to make that topic more in line with the maker spirit.

    Abin had pointed out that good recognition of contribution is very important in retatining contributors. Binoy shared his experience working with womoz and how they have so many hurdles in even attending a Mozilla event.

    Keeping with the unconference style of the whole meet, there was no official end of the meetup. We took enough photographs and left the place when the hotel asked us to clear the conference room for the next event happening there.

    We then switched to rooms. Luckily we had 3 rooms next to each other and everyone was doing something in some room. Shine was working on the server. jsx booking tickets to China. I was sharing my ebook collection with psbots. Ruwaiz was learning stuff from Kumaresan. Another group was planning Maker Party Malabar and so on.

    Walking by the side of Kochi Metro under construction I didn’t even have time to reflect on the two days when I found a low floor AC bus which would take me to Ernakulam bus stand and the bus home.

  • Did I Screw Up Mozilla India Blog’s Security?

    With great power comes great responsibility. The headline was clickbait. I probably haven’t screwed up anything. I was granted temporary admin access to Mozilla India blog because I kept pestering the existing admins with bug-fix demands. This post is the story of how I went ahead to fix my first bug; opening myself to scrutiny, for the security of everyone.

    working on daddy's computer by C Jill Reed, on Flickr
    Creative Commons Creative Commons Attribution-Share Alike 2.0 Generic License   by  C Jill Reed

    Immediately after Deb said he’s giving me admin access what I did was reset my password on the blog’s WordPress account. I let wordpress generate a secure password for me instead of choosing any myself.

    The next task was storing this password somewhere so that I don’t have to reset it the next time I wanted to login. There were two options in front of me. The first one was to store it in firefox’s own password manager. But, if I do so, to be absolutely sure nobody else accesses it if I leave my laptop unlocked, I’ve to set up a master password. Setting up master password will make it less convenient for me because it’ll affect my normal browsing (requiring the password in every session for other websites, while I need it only for blog.mozillaindia.org which I’d be visiting only seldom).

    Therefore I decided to save the password encrypted in my file system. Although ArchWiki lists many methods for disk encryption, I used a GPG based encryption. Using the vim-gnupg plugin I transparently saved the password to the filesystem, encrypting and decrypting on the fly.

    Now that I could login safely, I proceeded to look at the bug I wanted fixed – to replace blank og:image. Jafar had included the diagnosis of the problem in the bug report itself. Jetpack linked to a blank image as og:image if it didn’t find any suitable image on the page.

    I ducked for solutions and landed on Jetpack’s own blog with the code snippet that would solve the issue. I was confused for a while because the post just had a function definition and didn’t tell me how to add it to the blog. Ducking again, I discovered that the common way for adding extra functions is to add it to functions.php file inside the theme. This was slightly counter-intuitive for me because I was under the impression that themes were all about the style/layout. But, as it turns out, themes have a very critical role in the functioning of a wordpress website. And as a welcome side effect, it’s possible to edit the functions.php file from the theme editor directly from the admin dashboard, thus eliminating the need to ssh into the hosting provider.

    Although now I knew what to do, I wasn’t sure that I’d be able to get the code running in one try. And I didn’t want a single minute of downtime on the blog. Therefore I decided to recreate the blog locally on my computer. I downloaded wordpress and set up mysql, apache, etc., installed the exact plugins and theme as Mozilla India blog such that I could test the changes I was about to make on my computer before working on the live blog.

    On my local installation, I added the extra functions to functions.php with comments explaining why those were needed and it worked in the first attempt itself. I then created a few posts with and without images to make sure everything was working as expected. Once verified, I made the same modifications on the live website and marked the bug resolved fixed. Voilah! It was one small bug for a sysadmin, but one giant leap for me.


    NB: We are always looking for more contributors in Mozilla. If you’re interested in participating in interesting (web, or otherwise) projects and want to have lots of fun while learning cool stuff, ping me.

  • My Response to Whatsapp’s (?) Cease and Desist Notification Against Me

    I’d received a letter in legalese from someone who claims to be WhatsApp’s lawyer asking me to do certain ludicrous things. Here’s my response.

    Dear RAB,

    This is in response to your email on 4th August titled “WhatsApps’s Cease and Desist and Demand Against Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp”. Let me make it clear to you at the outset that your email “threat” was completely inappropriate and wrong for various reasons which I shall elucidate in this mail. 

    I understand that you have not even gone through my code and rather just did a search for “whatsapp” on my github repositories before sending me this stuff. I understand it because you tell me that “QRtoWhatsapp expose[d] WhatsApp users to anonymous messages that others may use to deliver solicitations or malicious software to WhatsApp users.” A cursory knowledge of Android programming and the patience to first go through my code before accusing me of something should have let you known that QRtoWhatsapp was a program that scans a QR code and starts an Intent, which is the official way for inter-process communication on Android, thus allowing someone to easily share the message behind a QR code to WhatsApp.

    Like QRtoWhatsapp, python-whatsapp-bot and pyWhatsapp both had whatsapp only in their names. They could as well have been called python-bots and most of the code in those programs were not even mine, but copies of others’ code released in permissive licenses. They were of generic nature and could have been used to build a program which responds to commands. Of course I also gave links to instructions to connect it with Yowsup. But the following accussations in your email is totally wrong.

    you will not attempt to reverse engineer, alter or modify any part of the Service;

    I haven’t attempted to reverse engineer, alter or modify any part of your service. I love free and open source software. And I love FOSS precisely because I can understand how it works without struggling through reverse engineering or whatever. If you gave me three months of holidays, I wouldn’t spend a minute on trying to figure out how a proprietary software works.

    The most I have tried to understand how WhatsApp works is by being a power user and testing all the features WhatsApp provides. When WhatsApp introduced blue check marks, or voice call, or groups of 50, or 100, I was probably among the first few users to notice or use those features. Because I used to care for WhatsApp.

    you will not duplicate, transfer, give access to, copy or distribute any part of the Service in any medium without WhatsApp’s prior written authorization;

    I haven’t done any of these because I have only as much access to WhatsApp’s “Service” as any other user. I have had no connection with anyone who develops WhatsApp and I do not have the magic power to obtain access to your “Service” through any other medium.

    you agree not to collect or harvest any personally identifiable information, including phone numbers, from the Service;

    You (and WhatsApp) are being ridiculous. WhatsApp’s entire business is on connecting people through their phone numbers. I cannot communicate to someone on WhatsApp without first knowing their phone number. If I already know someone’s phone number, why would I “harvest” it from WhatsApp?

    Also, when I am added to a group on WhatsApp, it shows me phone numbers and nickname of everyone whom I don’t already have in my contacts. What am I supposed to do with these phone numbers? If I save them to my phone’s contacts using WhatsApp’s own “add to contacts” option, am I harvesting their personal details?

    you will not interfere with or disrupt the integrity or performance of the Service or the data contained on the Service; and

    I have not. Since WhatsApp wouldn’t allow multiple clients to connect with the same phone number, I couldn’t even run my own bots on WhatsApp.

    you will not attempt to gain unauthorized access to the Service or its related systems or networks.

    I haven’t attempted this because I don’t care and I don’t think I can gain access even if I try (because WhatsApp should have set up some really strong security in there).

    You accuse me of:

    using the names “Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp” and “WhatsApp” which creates confusion about the origin of Python–whatsapp-bot, pyWhatsapp, and QRtoWhatsapp; 

    But this is unfounded fear. People who use Github probably know the difference between free software and proprietary software. They know that WhatsApp has no love for free software and therefore wouldn’t ever have any source code open to scrutiny. Therefore, this confusion you describe is imaginary.

    using (and/or facilitating the use of) the WhatsApp registration system to generate credentials for and authenticate unauthorized clients and services in violation of the WhatsApp Terms of Service;

    reverse engineering, altering, modifying, copying, using, or redistributing WhatsApp code, and/or circumventing certain technical measures put in place to protect WhatsApp’s Service, IP, and WhatsApp users; and

    enabling users of unauthorized clients and services built using Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp to circumvent technical measures to protect WhatsApp’s Service, access the Service without authorization, and violate WhatsApp’s Terms of Service.

    These are all wrong accusations as explained earlier.

    Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp willfully exploits WhatsApp’s Service, undermines the goals of WhatsApp, and intrudes upon and undermines the service experience of the community of WhatsApp users.

    This is where I have serious disagreement with you. If bots worked properly, they would only add to the experience of the community of WhatsApp users. This can be easily seen from how Telegram messenger introduced an official API to build bots. Maybe WhatsApp should stop thinking that it is the best messaging platform on Earth right now.

    Your demands and my responses:

    Cease all promotion and distribution of Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp at all distribution points, including GitHub repositories (e.g. https://github.com/asdofindia/python-whatsapp-bot; https://github.com/asdofindia/pyWhatsapp; https://github.com/asdofindia/QRtoWhatsapp), websites (e.g. http://asdofindia.blogspot.com/), and social media accounts, and confirm you will not in the future develop, sell, offer for download, and/or distribute Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp or like code and resources;

    I have removed the repositories from github on the day you sent me the email because the very act of sending such a mail offended me. I used to think WhatsApp was a cool software but now I realize it isn’t. I do not care about WhatsApp any more to be developing anything related to WhatsApp.

    Confirm you will not in the future develop, sell or offer any unauthorized code, resources, services or products that interact, or enable other to interact, with WhatsApp services, products, or users;

    Like I said, I f***ing don’t care any more. You can be assured that I will not even talk good about WhatsApp any more, let alone interact with it.

    Cease using the terms “Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp,” “WhatsApp” and any other terms or logos confusingly similar to WhatsApp in connection with any code, resource, product or service you currently offer and may offer in the future;

    I’ll continue using the name WhatsApp when I mean WhatsApp. I shall make sure that nobody is confused which WhatsApp I mean when I refer to WhatsApp in sentences like “WhatsApp sucks”.

    Account for and disgorge all profits you have obtained from the development and distribution of Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp;

    I have not obtained any profit from the development of these programs. I have only incurred losses of time and energy.

    Compensate WhatsApp for the damages it sustained from your distribution of Python-whatsapp-bot, pyWhatsapp, and QRtoWhatsapp;

    Compensate WhatsApp for damages associated with Python-whatsapp-bot,
    pyWhatsapp, and QRtoWhatsapp’s infringement of WhatsApp’s IP; and

    You should rather give me compensation for the insults and threats you hurled on me and for the effort I have wasted on making WhatsApp any usable.

    Immediately take steps to preserve all documents, tangible things and electronically-stored information potentially relevant to the issues addressed in this letter, as those could be potentially relevant and discoverable materials in connection with any legal proceeding WhatsApp may choose to pursue against you or Python-whatsapp-bot, pyWhatsapp, and  QRtoWhatsapp.

    Yes, that is why I’m writing this response as a post on my blog.

    WhatsApp and its affiliates have taken technical steps to deactivate your WhatsApp, Facebook, and Instagram accounts, and hereby revoke your  limited licenses to access WhatsApp’s, Facebook’s, or Instagram’s websites and/or to use any of their services for any reason whatsoever. This means that you, your agents, employees, affiliates, or anyone acting on your behalf (“You” or “Your”) may not access the WhatsApp, Facebook, and Instagram services, websites, apps, networks, platforms, or otherwise (“Platforms”) for any reason whatsoever.

    Please feel free to delete all my accounts on these platforms. Also I demand that you (or your client) do the following:

    • Delete all the data you have stored with or without my permission on the servers of Facebook/WhatsApp/Instagram.
    • Delete all the metadata you have collected from me with or without my permission.
    • Publish the details of all the data about me that you have handed over to any third party (NSA, advertisers, or anyone who is not Whatsapp/Facebook/Instagram). Take all steps possible to remove the data from those third party servers.
    • Delete all the groups I have created on WhatsApp/Facebook.
    • Remove the accounts of or give a warning to all users who have joined WhatsApp/Facebook/Instagram through an invitation sent by me.
    • Stop interfering in the Internet experience of millions of Internet users in India and other countries through programs like Internet org. (More about this later)
    WhatsApp’s log from their site. Probably a TradeMark violation by using it here.

    Some friendly advice to WhatsApp and its new boss
    WhatsApp was a cool thing when it was born. So was Facebook. That’s why people like me started using those services. That’s why we asked our friends to start using those services. That’s why some of us continue using WhatsApp/Facebook even now.

    But that doesn’t mean these things will continue to be cool no matter what you do to it. In my opinion, WhatsApp is no longer cool. It does not support multiple devices, cloud sync, or sending files. It does not have a proper desktop/web client that works on its own. (Copy some good things from Telegram, maybe?).

    To be a programmer is to automate things. Programmers have built automation on top of every popular communication medium (Jabber, IRC, diaspora, even facebook). WhatsApp cannot be an exception to this rule. Yet, unlike other instant messaging services, you continue to staunchly believe that automation shouldn’t be possible on WhatsApp. That makes WhatsApp uncool too.

    Services like WhatsApp relies on power users to gain traction. I am a power user myself. I am among those who start using your app before 1% of the world have heard of it. We are the people who bring traction to your apps. We are the people who dare into the unexplored and explore choices to their fullest. By sending hate mails to people like me, you’re alienating the very people who made your service a success. I understand that you have gained the critical mass required to sustain without power users like me. But should you continue doing such hateful things, we will make people switch because we can.

    So with Facebook. If you cannot continue to innovate, you’ll fail. Just because you can change the algorithm at will to push posts from pages down, you shouldn’t be asking pages to pay dollars to make themselves heard to their own hard earned fans. You shouldn’t arbitrarily censor people. You shouldn’t try to suppress social revolutions. You shouldn’t interfere in people’s social lives. The very fact that you continue doing these harmful things to the society means that you’ve become arrogant. You’ve forgotten your modest beginnings. And people will find out. They will switch away from you just like they switched away from others to you.

    Maybe you understand. Maybe that’s why you’re now trying to restrict people’s access to what services they can access on the Internet. Maybe that’s the reason you push for misnomered schemes like Internet org which gives people easier access to your own services.

    But I warn you and challenge you. You cannot continue being successful with strategies like this. You will fail. Walled gardens like yours will be replaced by open, vibrant spaces. Diversity will become the norm and monochromatic services like yours will become history. The Internet is not your property and it will not be. And we will protect that rich, diverse, free Internet.

    Broad-chested,
    Akshay