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.

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

  • Internet Will Become Dramatically Useless in the Near Future, Unless What is Said in This Happens

    Allow me to introduce you to “net neutrality” if you haven’t heard of it yet.
    Hindu had an editorial about why it is important yesterday.

    Net Neutrality is the concept that all data traffic on the Internet should
    be considered equal. There shall be no discrimination.

    So, say,
    if you pay for 1MBps Internet, your ISP should give you 1MBps itself
    (neither high, nor low) no matter if you use torrents, or WhatsApp, or
    Facebook, or Wikipedia, or YouTube, or whichever site/service you’re
    connecting to.

    But, for people like Reliance, Airtel, Uninor,
    Vodafone, etc this is bad for their pocket. Because people won’t send
    SMS or make phone calls, they can get money only via data packs. And
    they are greedy for making more money.

    So, what they have been
    trying to do, is to charge people differently if they’re using Viber,
    WhatsApp, Facebook, etc. This comes in the form of “free” Wikipedia,
    “free” Facebook offers, or “special” Facebook packs, “special” WhatsApp
    packs, etc. These all give differential treatment for different
    services. And that is bad!

    Last week, they forced TRAI to release a
    consultation paper for “regulating” (read: putting restrictions on) these services (Over The Top services
    – Whatsapp, Facebook, etc.). According to this paper, a lot of ideas –
    like licensing the OTT services, slowing them down unless you pay TSPs
    more, making the OTTs pay the TSPs, etc – are being considered to be put
    in place.

    A lot of people are already campaigning to protect the
    Web by keeping it neutral. Example:

    What we need to do is: raise awareness of why net neutrality is important, and ask stakeholders to send their comments to advqos@trai.gov.in

    You can read more analogies and get links to the paper at learnlearn.in/net-neutrality/

    If anything is unclear, please ask in comments.

  • Free and Open-Source Software

    Imagine you discovered how to make a delicious cake. You are the only person in the world who knows how to make it. It is so tasty that you could make a fortune selling it. What would you do?


    If the first thought that came to your mind is to start a bakery and make profit out of selling the cake, think again.


    There would have been one point in your life when you did not know what a cake is. From that point, all your knowledge about cakes came from people around you. Sure, you made a discovery with your own effort, but the world empowered you to make that discovery.


    Now imagine, instead of making profit out of the cake, you let the recipe out. You let everyone in the world know how to make your cake. Suddenly, you are making a lot of people happy.


    Slowly, others modify your recipe to make even better cakes. Even you enjoy the new variations. And the whole world is grateful to you. You are immensely satisfied.


    But the world is not fair. Sometimes the world goes for less tasty, but heavily advertised cakes with top-secret recipes. And you wilt away into oblivion while the world conveniently forgets about your beautiful contribution to the world. The picture isn’t so rosy, is it?


    Image: “Free Software” by user ryyo on flickr



    Replace the cake with software and you just read a small introduction to the Free and Open-Source Software (FOSS) philosophy.


    If FOSS, “anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software.”


    Creating such software most often does not bring economic prosperity to the developer (the person or group who creates the software). But to a large extent, they always enjoy the satisfaction that is obtained from people’s appreciation of what they have made. Also, the world gains so much because others can make contributions (extra features, fixing security bugs), which will again benefit everyone using the software.


    But we do not code, what can we do? We can not be a cruel world. We can support this cooperative culture and appreciate the effort of those developers who are willing to share, learn, and create better products that we all use daily to make our lives easier.


    Here is a list of most common FOSS packages for you to use.
    Mozilla Firefox – for browsing
    GIMP – for photo editing
    Libre Office – for word processing, spreadsheet, presentations, etc.
    VLC – for playing media files
    7-zip – for file compression
    (compiled from) Wikipedia – for sharing knowledge!

    (Ι”)  Copyleft (No rights reserved)

  • When There’s Nothing Left to Say

    One of the many things I like in life is talking. I like to discuss things, dissecting events and analyzing situations. It gives me some kind of strange pleasure when there’s clarity in my mind on every way to think about an issue.

    Say, there is a forward on the IM client that is obviously a hoax. The things that go through my mind include but are not limited to:

    • Why is it a hoax?
    • Why is it believable?
    • Why do people believe in it?
    • Why do people forward it?
    • Why do even people who do not believe it forward it?
    • Why do people who forward it not take it seriously when asked about it?

    Following these thoughts to their completion makes me comfortable. It lets me classify the forward (the event) to a folder in my brain. The next time I see an event of the same kind, I know all the patterns surrounding it. And there is less need to think about it. This somehow simplifies thought.

    But the first time a new kind of event occurs, I spend a lot of time thinking about it, characterizing it, judging it. Sometimes this involves talking with, arguing with people (although most people do find this annoying). But the process gives me clarity. And clarity is golden.

    There are times when I see events repeat. I find it incredulously boring to talk about them when I have already gained clarity about it. That’s why I write things down. So that I can point people to my thoughts on the event. When they have a new way of looking at it, I will come back and discuss it.

    Some issues have been discussed so much that any more of discussions on it would be like eating after you’ve finished a buffet dinner – nauseating.

    Then there are issues about which talking is equivalent to whining. Things that can be fixed straightaway (or if not, that deserves to be attempted). Here, not doing what is logically the right action after discussion makes me nauseous. Therefore, sometimes, I shun away from the discussions altogether.

    Those are the times when there’s nothing left to say. Everything left is to be done.