Year: 2015

  • [jog-journal] Natural Selection in Dogs and FOSS Contributors

    The usual pack of stray dogs were serenely looking at the morning walkers in front of oval ground – not moving unless the wheel of an oncoming car is directed at the ground under their rib cages. One of them suddenly started jumping with joy as it saw an old man and ran towards him. “Did you think I have biscuit?”, said the old man petting it.

    Why do dogs love humans so much? Maybe during our evolution, we humans gave environmental pressure for the selection of loyal dogs only. Maybe cats evolved on their own and maybe that’s why they don’t care about humans.

    I think contributors to FOSS also undergo such a selection, unknowingly.

    People who end up being contributors to FOSS are the people who ask questions and answer them themselves.

    Most FOSS projects are written as dogfeed to solve the author’s specific problem. It is only an after-thought that makes it a public library. Therefore, things would be done in ways that are less than intuitive. Configuration would be a mess, and the only documentation would be the few comments that’re dispersed in the source code.

    With projects being so beginner unfriendly, how do newcomers start contributing to FOSS? Or, what kind of newcomers start contributing? Only those who are genuinely curious, who’re willing to learn by themselves, and who are more comfortable finding answers online than asking people questions.

    This could explain why sometimes FOSS contributors are the worst people to take help from to get started with contributing to FOSS. They themselves are curious truth seekers who do not like third party answers. They are not acquainted with the process of handholding. And therefore, they appear hostile to the poor newbie who is still learning to ask questions the smart way.

    Today morning I made a presentation for two girls in a college in Kerala whom I met at hackindia to get started with FOSS. I have been trying this pedagogy which puts the emphasis on acquiring those skills which help in auto-didactism.

    And I ran so hard that I felt my eyes would pop out.

  • [jog-journal] Streaks

    Streaks are very important. For today, I’d not have gotten up had it not been for the streak. Yes, the 2 day streak is the most difficult.

    And not just that. I didn’t even think while running today. I was testing the efficiency of my method to achieve runner’s high. And it is pretty much efficient, for me at least. I ran faster and longer, today. But being unable to think is a side effect of running faster.

    And while talking about streaks, I’m on a three day streak in learning French using Duolingo, today. I started my streak again because of my friend, who’s on a streak too and catching up with me.

    Looking at duolingo, social pressure and streak pressure must be the two things that makes one learn continuously.

    On the way back I saw them playing Tennis at the courts opposite cosmopolitan club. That’s when I remembered my failed attempts to learn Tennis and play like Federer.

    Talking about Federer, I had once read that forehand was his great weakness once upon a time. But gradually, he turned it into his greatest strength. What is my greatest weakness?

  • [jog-journal] Is Runner’s High Just an Energy?

    Ever since finishing VJ James’ Nireeswaran yesterday, I can’t get rid of the idea that every thing in the universe is just energy. Our body is made up of molecules of various kind. But inside, they’re just subatomic particles in different configurations. And protons and electrons and neutrons apparently have this wave-particle state. Everything is energy. So, the only question we have to ponder upon is “What is energy?”

    The huge pipe laying work in Kukralli is still underway. But good people have kept the jogging trail untouched, as of now.

    By the end of today’s run, I realized that sprint interval training has indeed made one change in me. I can’t run slow anymore. I can’t jog. I have to run. If I try to slow down to someone’s speed, I feel restrained, and soon, tired. Probably the stride length is longer now. Even chi-running has become impossible. I feel impatient at slow speeds.
     
    And if you are unable to attain runner’s high soon enough or at all, there’s a simple trick to achieve pseudo-runner’s high – just look at the trees, or the sky, or anything that doesn’t move with you.

    A day’s run has been perfect if you feel a sense of peace and happiness flowing out from the middle of your chest.

    On the way back I saw this Ola cab. Makes me wonder, how much would it cost to start driving one, and can it be a good part-time job? Imagine all those part time auto driving fuelled self-funded IIT education stories. The auto-rickshaws would be replaced by Ola and Uber cabs in the very near future.

  • Beautifying GNOME with Paper theme (Material design)

    Last night while I was searching for alternative window managers I discovered this wonderful GNOME Shell theme called “Paper”. After installing it, I’m enjoying looking at my computer screen.

    Here’re some screenshots.

    Applications Overview. Look at the menu menu on the top right.

    Nautilus with folder icons

    Tweak tool showing the wonderful checkboxes and the settings I had to change to achieve the theme

    Turning Global Dark theme on was a welcome addition to the Paper theme. Read about setting up GNOME with paper theme on my website.

    Another useful app I installed is Synapse launcher. Ctrl+Space and it gives me access to everything I need.

    With these, somehow, I feel like my computer has gained a few milliseconds in speed.

  • [jog-journal] The mind game

    If you sleep late, you wake up late.
    If you sleep early, you still wake up late.
    That’s why they have invented alarms.

    About one week since I last woke up early enough to go jogging. The body clock is so unreliable. Woke up to my phone’s clock. Two snoozes only.

    Today, my plan was to run the whole round. So I started slow. And quite unexpectedly I had to give up half way round. Therefore, the sprint-interval training I’ve been trying hasn’t worked. Well, it wouldn’t have worked, either. The intervals between sprints were too long. And the intervals between sprint-intervals were too long too πŸ˜›

    The idea of long distance running is not to let the heart rate or respiratory rate go above a threshold. Once you’re past that you’re in the sprint mode and you can’t go far. But what I had was pure fatigue. The chest couldn’t hold it. In fact, when I thought of finishing with a sprint in the home stretch, I had acute intercoastal myalgia, one of the differentials of heart attack had it come on the left side. But this one was, as always, on the right.

    On the way to the lake there was an Indian Pariaah which showed cubitus varus. On the way back there was a lost pug looking for its owner.

    Two people asked me the route to Maharaja’s. There was police blocking the entry to DC’s office. Something is happening in Maharaja’s.

    And I met two professors, one colleague today. It’s fun how jogging parks are central to Mysore. Maybe if there was a park in Mattanur, more people would have been jogging.

    I had less thoughts today. That’s good. The ultimate aim of running is to have no thoughts.

    I do not like people who run with earphones, because those keep falling out of my ears. But then I saw this man at the University gate, he had a cooling glass and a huge headphone around his head and it was probably giving him a 3D surround. I hope running with music is a great way to keep running, although I have never experienced it. Have you? Feel free to comment.

  • It’s Based on Science, No Really

    There are two kinds of people in the world – those who understand the meaning of the word “science” and those who don’t. This post is about the latter set of people.

    You know someone has no idea what they are talking about when you hear them say:

    “Numerology is a science”
    Even mathematics isn’t strictly speaking a science.1 And numerology is based on what? Numbers. Where are these numbers coming from? Arbitary things like letters in your name, date of birth, etc. Do the numerologists even acknowledge that there are multiple calendars, multiple languages to write your name in, etc? How can numbers predict future?2

    “Homeopathy is a science”
    It is, if pure water is science. But seriously, the principles of homeopathy are in no way the reason why homeopathy even works for some people. It’s the principle called “placebo” that makes Homeopathy tick. And the difference between correlation and causation is one that these people can’t make.3

    xkcd: Dilution

    Any kind of alternate medicine is science”
    Read what I just wrote above.

    “Astrology is a science”
    Because planets exert gravitational influence on human babies? Yes, they do exert a force which can easily be calculated by Newton’s laws, but if you follow through, the cars and buses outside the hospital in which your baby is born exert more gravitational force on your baby than the planets outside Earth.

    “Ancient sages had vast amounts of knowledge, they knew most things that modern science is only coming to realize, and we have failed to explore even a fraction their knowledge OR Indians discovered zero and everything else in the universe that is discoverable”
    No. Well, maybe Indians did discover zero before everyone did. You see I call it a discovery because nothingness is a concept that need not be invented. And I’m sure they did figure out the Bodhayana theorem too. But drawings of flying machines is not equivalent to flying. Stories about conception without sex is not equivalent to being able to do stem cell cloning or in vitro fertilization. Observing the binary-ness of a star system is not equivalent to a PhD in astrophysics. And no matter how smart your sages where I bet they wouldn’t have used cellphones to talk to each other. Talking about cell phones,

    “Cellphones causes cancer, kills babies, burns brain cells, and kills baby squirrels”
    No. Simply no. Just because you can think up a plausible theorem it doesn’t become true. Just because one kind of radiation kills people, all types do not. Just because your theory applies to something analogous, it needn’t apply to this.4

    “This world-renowned scientist/professor/doctor/faculty/student of this world-renowned university thinks this is science. So this is science.”
    No, in fact, it is the opposite that is true. This pseudoscience is being approved by those people, and therefore they’re fake.

    “You do not appreciate the science behind these because you are not open-minded. If you think more, you’ll understand”
    No, broad minded you! I have probably thought more than you did about your favorite pseudo-science. I have applied the methods of scientific rigor and realized that it doesn’t hold. And that’s why I vehemently oppose you calling it science. I am willing to put more energy into appreciating it, only if you have something new and logical to contribute.

    It is so kind of you to believe in science and believe in only things that seem scientific. I urge you to grow a bit more and make sure things that seem scientific are scientific. Begin your journey at RationalWiki.


    Footnotes:
    1) Well mathematics is “the queen of all sciences”, and it surely is very important in science. But it is too beautiful and abstract to be called science.
    2) There’s statistics and probability which can predict future with some probabilistic certainty. And of course a huge part of science is entirely based on probability and statistics. But then, you know how it goes.
    3) Of course when it comes to correlation and causation there’s a certain amount of trust we’ve to put on our ability to have avoided all the other confounding factors, but still.
    4) Analogies themselves are useful only to gain clarity in thoughts, not to validate them. Building up from fundamental principles is the right way to validate ideas.

  • Early Preview: telegram-pybot – A Telegram Bot based on Plugins, written in Python

    We have all used and loved Yago’s telegram-bot written in Lua as an extension for Vitaly Valtman’s tg-cli for making funny Telegram bots. But Lua was keeping a lot of people away from making meaningful plugins.

    Alternate approaches included adding a –json flag to vysheng’s tg-cli and parsing that data or building wholly native APIs for Telegram in java or other languages. Liberbot is an excellent example.

    Now, the developers at Datamachine Studios have come up with a Python interface for building bots. I have tested it and it works very well, even at this very early stage.

    Screenshot of the bot listing its plugins on command

    What?
    Spartanly named “telegram-pybot” (for now, hopefully), what these people have created is a wrapper around vysheng’s tg-cli. They did this by patching the cli with Python interfaces and contributing to the upstream (that’s the beauty of free software).

    Why not native Python API?
    Apparently, the developers of telegram-pybot started out making plugins for the Lua bot. Later when they realized they wanted to switch to Python, it was easier to mimic the Lua binding API in Python rather than deal with the whole logic of Telegram (which keeps updating the schemas every now and then too). And many people are trying their hand in developing a pure Python API, should any of them become stable telegram-pybot is in a good space to switch to such a native interface with very little work in the future.

    “It’s kind of a pipe dream of mine to work on a python API, but one thing at a time right now” says Phillip Lopo who’s one of the two main forces behind the bot.

    Python vs Lua
    In my experience, Lua can only be at best called a scripting language, albeit a powerful one, while Python is a power packed, complete programming language. The sheer number of libraries available in Python and the pythonic way of doing things makes development in Python much more easy compared to Lua. Also, threading is a huge weakness in Lua which has mostly been solved in telegram-pybot already.

    Plugins
    The sweetest feature of telegram-pybot is its plugin management system. It is promising even while currently undergoing heavy development. Plugins are organized by repositories. One can search, list, install, update, etc the plugins available in a repository. Soon multiple repositories will be supported so that anyone can maintain their own list of plugins in a repository and others can easily get hold of more plugins, thus also avoiding a single point of failure.

    And the plugins themselves run quite smoothly, and cause no trouble even when they crash. Installing new plugins, restarting the bot, etc can be done over a Telegram chat thereby making them super easy to use (even for a non-developer)

    License
    Licensing bots, especially when they are powered by plugins is a confusing affair (read about the licensing of Yago’s bot). GPL offers no protection to bots that run over the network and therefore if one has to choose a copyleft license, it must be AGPL.

    But the developers of telegram-pybot want to give away as much freedom as possible. “I want people to use it, and I want the option for people to write private plugins for private communities” says Vincent Castellano, the co-developer. So there’s a good chance they will settle for MIT or BSD license when they finish their primary work on the code.

    With all that said, the bot is still in active development, as their readme says:

    “While already very capable, this bot is still in relatively early
    development. Some plugin names, or plugin API calls may be modifed.
    However, we are starting to settle on our stable APIs.”

    But you should check it out already — github.com/datamachine/telegram-pybot


    When I discovered telegram-pybot last night, I was very excited. And I developed a plugin which we’re enjoying in our FSM-K Telegram group. It is so easy to build that I want anyone with a computer to try, and therefore I’ve written a tutorial on my website.

  • [jog-journal] The Idea

    They say an idle mind is devil’s workshop. A jogger’s mind is god’s workshop then.

    I’m waking up at 4 am since I had a sweet dream yesterday.

    Some goons appear outside a hostel. They beat the two securitiy guys up and ask them to go inside, take the mobile phone from every guy sleeping inside, and hand it over to them. The clever securities went inside and woke all the guys up. The guys started coming out one by one and soon the goons fled seeing the crowd.

    When I woke up I had the realization that individually we are all powerless, but if we can wake people up to the reality, we can fend off any enemy.

    That was yesterday. Today I had no dream to wake up with. This thread is going on about licensing of a Telegram based bot. If the license is AGPL, does it protect the bot as we want it to be protected? I’ve sent an email to FSF because the answer isn’t clear from their FAQ either. Then I started making a teaching kit called “Internet elevator pitch for administrators” after wondering how I’d make my college Dean understand the importance of URLs. (My college’s official website is mmcrimysore.org.in. If you’re to visit it, you’ll be redirected to the subdomain of the website of the web developer (I’m ashamed to call that guy by this title). And the guy says the official URL will be used once the website is completed. Poor administration should have believed that.)

    It was 6 o’clock by then and fairly sunlit. And I was having a bit extra energy and so I went jogging to Kukralli kere. There are bulldozers around the entrance laying down huge pipes and I had to jog anti-clockwise today because the other entrance was blocked with soil. I remember reading somewhere that running anti-clockwise is good for the heart, but I wonder if that’s true for large circles (or even small circles). Also, what happens to the previous tar on the road when it is being retarred?

    Halfway through I noticed a woman running with a stooping posture. She didn’t look tired and she was young enough to be not having senile stoop. Do women assume certain positions while jogging to avoid uncomfortable jiggling of their breasts? Can this be avoided by wearing appropriate sports bra? If yes, maybe a bra-salesman can make a fortune at the entrance of Kukralli kere. After all there is already a leafy vegetables/hurbs guy, a glucometer guy, and even water purifier guys there.

    I was in the home stretch by then and I saw an Eagle being carried away by wind. Wind flows from water to land in the day, doesn’t it? That’s why there was wind I guess. And then a blue bird about the size of a small crane with 4 long fingers.

    I should write all this down on my blog! After switching to my website for all serious stuff I have been wondering what I’d do with this blog. Maybe this is the right place to write all these random thoughts. Maybe I should name it “Jog Journals”. Oh! That’d be fantastic. It’d keep me jogging every day because I’ve to write the journal and it’d keep me writing every day in turn.

    Just as I was fancying that idea something happened. I had been jogging regularly in first year. We had a group who’d go jogging and we’d complete the Kukralli round in 20 minutes and be back. But we lost that habit during university examinations. After that the only real reason that made me go jogging was this girl, in my immediate junior batch, who likes running a lot and whom I like a lot because of that. I knew she came to Kukralli every morning but I’d never ran into her despite adjusting my timing frequently. Incidentally right at the end of the round I saw her and she said “hey” and I said “hi”. Ha!

    I have absolutely no doubt that there will be enough interesting things/thoughts every day to fill this series with. Yes, a series, that’s the idea. Keep looking for the tag jog-journal.

  • Mozilla India Task Force Meetup – 2015

    Either of Shreyas or Jafar must have invited me to the Task Force meetup, and I got to be a part of the Mozilla India Task Forces.

    The 2015’s task forces were formed in an event at Bangalore (Lemon Tree hotel, Ulsoor lake) over 7, 8, 9, 10 May, 2015.

    On 7th and 8th, it was previous task force members discussing, evaluating, etc and planning.

    I reached the venue on 8th night.

    Day 1

    In the morning, George Roter talked about the mission of Mozilla and the goals for 2015.

    Afterwards, there was an activity to recall what Input -> Activities -> Output -> Outcome -> Impact was.

    After lunch, the task force concept was introduced. And all the task forces were introduced, including the newly proposed ones.

    Then we divided into groups based on the task force we were interested in joining.

    I joined policy and advocacy task force which was a newly formed Task Force to cover policy issues and also raise awareness about those, privacy, security, etc. We discussed our skills, our roles, our interests and what help we need. Later we aligned these to the Mozilla’s 2015 goals. More about the Task Force in the wiki.

    In the night, I downloaded the mozilla-central code from the mercurial repository and built my own firefox (ASDfox)

    Day 2

    Day 2 was really intensive. We wrote down our short term goals and long term goals for each task force.

    George did a workshop on Fennec, we made personas, discovered a lot of ideas and challenges.

    Towards the end, we finalized the strucutre of the task force and presented the important goals to the group.

    [These notes are super short because there is too much going on and I don’t even have time to note them down before forgetting, let alone expand.]

  • Everyone has an Angel and Devil in Them

    Last week I had (what I thought was) the rare privilege to have a conversation with Jimmy Wales, the reluctant-to-admit-so co-founder of Wikipedia.

    It was all a part of the #NetNeutrality campaign to save the Internet. I built a Firefox add-on called Zero Internet which would simulate what happens to a poor mother of three (who can’t afford a data-pack) when she visits the “Internet” through Internet.org.

    I submitted it to reddit, and for a few hours, it was the top post on r/india (which, to be honest, has been the rendezvous for sane Indian Internet users, and would have upvoted even if Deepika Padukone supported Net Neutrality).

    Surprisingly, Jimmy Wales responded (with harsh criticism), both on twitter and on reddit, as if he was personally leading Internet.org. He said:

    “This is deeply dishonest and makes me think you haven’t even done the most basic homework as to how this works.

    In all cases, people who are using Internet.org are on data plans (often daily plans or plans with quite restrictive data caps). One reason Facebook has been successful at getting ISPs to go along with this is that it is viewed as a win/win by the carriers – it gets people online and using data.

    For the very poor, if they can’t even afford a daily plan, then they don’t look at the Internet at all. At least this way they have something. For those who are a bit less poor, the program offers them a way to save money on data – they can look at some sites for free (like Wikipedia) and use their precious data for other things.

    Your plugin gives a completely false impression.”

    …which is quite contrary to what Mark Zuckerberg is making people believe (He says Internet.org is about bringing Internet access to those who do not have it yet) and also calling my add-on dishonest was dishonest. For poor people who can’t afford data plans, going out of the sites allowed by Internet.org is impossible. And that’s exactly what my add-on does.

    So, on twitter, I went on a couple of rounds of arguments over the issue. And it turns out Jimmy Wales really, truly believes that Internet.org is the only way for poor people in India to access Internet.

    Afterwards, Pirate Praveen helped me understand why I was feeling awkward.

    “the problem is with your expectation. We want angels and devils so we don’t have to think. But everyone has both these aspects in them. Just because someone does a lot of good is not a reason to support them when they do something wrong. Attacking someone who is in opposing camp is easy. But standing up to someone in your own group needs immense courage and conviction. Every privilleged person thinks its their god given mission to help the poor and show their kindness. They do not want to acknowledge that their privillege is the result of historic oppression and they are part of the reason why they remain poor. They think poor people needs charity and kindness. What we really need is a conscious collective effort to end systematic oppression of people and that will need questioning of our own roles and privilleges. Accepting our role in creating the poor is much harder than feeling good about helping poor.”

    In fact, I now have a tagline for Wikipedia (which I would have never thought about till last week)

    “Imagine a world in which every single person on the planet is given free access to *some* of all human knowledge. That’s what we’re doing.”

    NB: Jimmy Wales is an Objectivist. His life philosophy is based on that. And therefore any comment on where Objectivism gets it wrong is appreciated.