Blissful Life

When you apply skepticism and care in equal amounts, you get bliss.

Year: 2015

  • Surgery all papers

    Surgery was an altogether different experience

    This is Surgery (general) paper, part 1
    This is orthopaedics paper
    And this is Surgery part 2 which was the ultimate cram-test

  • General Medicine Paper 2

    Everything went by so fast and I have no idea how. Heart failure, again!

  • General Medicine Paper 1; final year, final exam, finally!

    That’s the question paper, folks. Except the 10 markers, everything was random.

    Finally, after years of apparent toil, the final exam starts. I was cramming yesterday and today morning (exam was from 2-5 pm).

    Heart failure was taught by Dr Srinivas in those 7 day extra classes.
    Pneumonia, I read today morning. So was NASH and Sjogren’s.
    Secondary hypertension, I wrote from what I remembered Dr LakshmeGowda telling when I diagnosed Vinay with hypertension.
    Pancytopenia, BMT, Megaloblastic anemia, all the same answers.
    Vildagliptins lucky guess as hypoglycemic agent.
    Ptosis, thanks to learning opthalmology twice.
    Tension headache, I’d no idea, but compared it with cluster and migraine.
    Neurogenic Bladder, straight from Dr LakshmeGowda’s mouth from the extra classes.
    Scabies – I had remembered the organism that caused it, Zigu telling it while we were having lunch.
    ARB, I confused with ACE inhibitors (and wrote Enalapril, etc.), but I’ve drawn the diagram of RAS.

    Everything here and there knowledge over the past life translated into black ink.

  • 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.

  • Onaghosham 2015

    I reached Mysore at 8 in the morning from Mozilla Kerala community meet-up and Zigu and Harinath had just dressed up to leave for the badminton court where 2k13 were organizing the Onam this year.

    I had a quick shower, changed immediately to the mundu I got as Onakkodi this year and the kurta that was dad’s; and left for the badminton court walking (my bicycle was being serviced).

    As soon as I reached I had sweet appam and chicken curry and then started working on cutting the orange jamanthis with Sanjana and Harinath. Zigu was drawing the pookkalam. We had our usual spot right next to the entrance to the badminton court. It was 2k14 batch right next to us, 2k12 then, 2k15 and Interns+PGs and 2k13 at the other end.

    While everyone was still laying the kalam, Aparna, Fahad, Gautam, and me represented our batch in the General quiz which was happening in the yard outside. Most of the questions were about Kollam (where the quiz master appears to be from) and we were leading till the last round. The last round was about kusruthi chodyangal (riddles) and we couldn’t figure out which dance form was associated with vehicles. So we ended up third.

    Back at the pookkalam we were almost done and I now was stripping vadarmalli petals for the extra finish. At 11.15 I went around to see how others were doing. 2k14 were just like ours. 2k12 hadn’t put 50% of their kalam. 2k15 had put all kinds of vegetables in. Interns were just re-doing what they did 3 years back when they won. And 2k13 just put some flowers in between a lawn of grass. After ensuring success I returned to our kalam to take selfies with everyone.

    After photographs vadam vali  started. I was trying to sit down with Terese when Gautam called me to be part of the team. Fortunately we had to pull just interns before reaching final. But Gautam got injured in the last pull and couldn’t particpate in the final. Naturally, we lost in the final to 2k12. They eat too much chicken. Even the girls. They won too.

    It was balloon bursting after that. And Arun almost won this time too. But only Fahad and Fayaz remained when Arun got out and it was Fahad who won.

    Then we had lunch. I, as usual, wasn’t interested in food.

    Post lunch there were many more games. Musambi in the bucket – where you put your head inside a bucket filled with water and bite a musambi out, Uriyadi, musambi eating, etc.

    In between the 2k15 juniors introduced themselves. Nice lot. Also, this year, for a change, PV had come for Onam. Took a selfie with her too.

    For tea there was, excellent according to others, dosa straight from the pan.

    Everyone came and the formal function was very nice. CFTRI administrator was the chief guest. Dr Shekar, Dr Dakshayani, et al with their Malayali love. Karun was Maveli.

    After the regular Thiruvathira there was three more group dances – an oppana, a thematic dance; and then a very nice cinematic dance.

    And a couple of songs. Dr Dikshitha made me melt.

    2k10 got mementos for leaving us. And we took so many photos. And everyone took one photo. And then we left.

    Number of people who broke their legs: 2 (Dr Ashitha whom Fayaz threw a stump on, and Josna who sprained her ankle falling from stage and ending up in our own Ortho OPD today morning)

  • 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.