Category: freedom

  • Why Researchers Who Care About Equity Should Use Zotero (and Not Mendeley)

    If you are a researcher, chances are that you write papers. And if you write papers there is a good reason for you to use a reference manager (also called citation manager?). If you use a reference manager and you care about equity, there is a good reason why you should use Zotero.

    Why use reference managers?

    Because the publication systems used by most of your journals are (intentionally) ancient. The internet allows usage of hyperlinks on any word in your article. But the academic society is still worried about putting references in an order at the end of the article. And every journal has their own citation “style” (as if the font style of the journal name matters in the quality of the reference). While all of this is part of a system that wants to continue making creation of knowledge the exclusive privilege of an elite circle, sometimes you might have to be a part of that system. And you’re better off handing to a software the tedious (and useless) effort of keeping track of your references and arranging them in an order and in the right “style”.

    Also because when you’re doing literature review you might want to keep track of a *lot* of references and you might want to tag them, group them, share with others, etc.

    So, use a reference manager and never copy paste references manually.

    Why not Mendeley?

    You might look at the options and you might see this software called “Mendeley”. And you might think, “Ah, this looks like a good fit for my use case.”

    But did you know Mendeley is owned by Elsevier? Do you know how in the age of the internet Elsevier and many other publishers continue to charge people for publishing and for reading? Do you think that these are reasonable charges levied in return of some great effort from their part? If you think so, you have literally no idea how the internet works. 

    See you are reading this blog. It took me zero money to publish this post. And that cost would not have changed a bit if I had a 100 references at the end of this post. This gets published under a creative commons license and that didn’t change the cost from zero either. Once I publish it, I will share the link to it in social media and other places. And people can add comment under it. Remember that most journals don’t pay peer reviewers anything for reviewing posts either.

    So that should really make you wonder what the process of publication in journals are about. My philosophy about journals are simple. Journals give you credentials and privilege. So you publish on them. And the academic society considers publication in journals as the yardstick to measure your merit. And that vicious cycle perpetuates.

    But I understand your plight. Just because the system is horrible you can’t avoid the system. And you’re condemned to the life of a 20th century academician. Fine. Publish. But don’t support Elsevier, Wiley, American Chemical Society, etc. 

    And don’t use Mendeley which is proprietary and owned by Elsevier.

    Use Zotero.

    Zotero is free and open source software. I use free to mean “freedom” as in “free speech”. Zotero is released in a GNU Affero General Public License. Which means that all the source code of Zotero is available to anyone who wants to modify it, add new features, etc. 

    Newton said “If I have seen further it is by standing on the shoulders of Giants”. If knowledge was like proprietary software, Newton would have said “I couldn’t have seen further because the Giants had a license agreement that said that I should close my eyes if I were to stand on their shoulders” and we wouldn’t have heard about Newton either.

    Open knowledge lets everyone stand on the shoulders of each other and see farther. Free and Open Source Software (FOSS) lets new programmers write better software by standing on older software. Zotero is that.

    If you care for equity, you should start from where you are.  If you use and encourage Mendeley, nVivo, and so on, you are
    ceding control to a proprietary ecosystem where the rules are laid down
    by the software “owners”. If you use FOSS like Zotero, Taguette, R, PSPP, etc you are strengthening software that is collectively owned by human kind. And you are making life better for everyone.

  • Liberty vs Morality

    Liberty and morality can be seen as counter-balancing forces.
    Liberty applies to individuals.
    Morality is a social construct.
    Liberty is about what one can do.
    Morality is about what one cannot do.
    Liberty assumes each human is a rational being and respects them for that.
    Morality is enforced on humans by authority based on arbitrary consensus.
    Liberty allows a human being to achieve their maximum human potential.
    Morality can potentially prevent individuals from harming other individuals.
    Liberty and morality are not equally acting on everyone, though.
    Morality often sides with the more privileged. Because the authority to enforce morality rests with them too. In turn, liberty also accumulates with the privileged.
    Privilege may never get equally distributed. We must therefore constantly renegotiate the arbitrary rules of morality for the benefit of the less privileged.
  • Understanding Socialism

    A few days ago one of my colleagues had expressed the idea of decreasing the pay gap between the highest paid employee and the lowest paid employee in our organization. I didn’t give a lot of thought to that at that moment.

    Yesterday morning YouTube showed me a video of Sunil P Ilayidom in which he talks about Gandhiji. I’m embedding that one here. It is in Malayalam.

    Somewhere in the middle he talks about how Gandhiji was in South Africa till his 40s and didn’t know how the poorest Indians lived and then how once he returned from South Africa Gandhiji walked into the hearts of Indian farmers. He talks about how Gandhiji’s political campaigns always started with the real life problems of the common person. And he talks about how Gandhiji’s first Satyagraha in India – the Champaran Satyagraha – was fought with the simple demand that farmers should get compensation for their crops.

    If you can understand Malayalam, Sunil Ilayidom’s talks about Gandhiji (powered by YouTube recommendations) makes you sit and listen for hours and hours together.

    Another point that Gandhi made which SPI reiterates is “The world has enough for everyone’s need, but not enough for everyone’s greed.”

    Yesterday evening we had our weekly ECHO session in the primary healthcare fellowship and Dr Vivek Kumar from BHS told the story of a lady who was diagnosed with Tuberculosis a second time in the last 1 year (after taking 6 months of ATT the first time). Her haemoglobin was 6.9, weight was just 35kg, and it seemed like even if she took ATT continuously forever, her body might not have enough strength to protect herself from tuberculosis. In that context he described how the average haemoglobin in men, women, children, everyone in the villages he serves in is about 8-9. For about 5 minutes I could simply not believe that this could be explained by nutritional deficiencies alone.

    So I searched online and found out a paper by last years’ Economics Nobel Prize winners about fortifying grains to reduce anemia. This study was done between 2002 and 2009. Which means this is a well-known problem. People live in abject poverty and there is absolutely nothing that seems to work.

    Our discussion rightly turned to policy changes that maybe required to bring change. Dr Vivek mentioned Aajeevika Bureau as an organization that was working with farmers to help them secure livelihood.

    We also talked about community based participatory research which is the idea that any kind of research should begin from the community, be designed and developed by the community, and be owned by the community to be ultimately useful for that community. People from outside have their limitations in understanding what works, and what doesn’t. When I was making this point I was imagining Dr Vivek as an insider, and me as an outsider. But then Dr Vivek replied reaffirming the point and considering even himself an outsider. And I had the realization that even being co-located with the community doesn’t make you an insider.

    Today morning on the bus I was reading Che Guevara’s “Global Justice: Liberation and Socialism” and a paragraph stood out at me:

    “The way is open to infection by the germs of future corruption if a person thinks that dedicating his or her entire life to the revolution means that, in return, one should not be distracted by such worries as that one’s child lacks certain things, that one’s children’s shoes are worn out, that one’s family lacks some necessity.
    In our case we have maintained that our children must have, or lack, those things that the children of the ordinary citizen have or lack; our families should understand this and struggle for it to be that way. The revolution is made through human beings, but individuals must forge their revolutionary spirit day by day.”

    I should probably be reading carefully the Pedagogy of the Oppressed soon. But this paragraph in the context of yesterday’s discussion made me think about poverty and the reasons why we are struggling with elimination of poverty.

    Two related points.

    The “combined total wealth of 63 Indian billionaires is higher than the total Union Budget of India for the fiscal year 2018-19 which was at Rs 24,42,200 crore.

    Pirate Praveen had once said this:

    “Every privileged person thinks its their god given
    mission to help the poor and show their kindness. They do not want to
    acknowledge that their privilege 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 privileges. Accepting our role in
    creating the poor is much harder than feeling good about helping poor.”

    Putting it all together made me finally understand the problem. The problem is us. The capitalists. The people who believe that a software engineer’s time is worth 10 times more than the farmer’s. The people who believe that it is okay to accumulate wealth and make profit.

    The free market will never pay a farmer well. The free market is stacked against farmers. Why is it that way? Why are things priced based on their demand and supply rather than their intrinsic value?

    Because that works well in favour of those few who are privileged to accumulate wealth. For things like food, they won’t have to pay a lot. And they can use that money to spend on things like AC cars. They can hire a home-help for 4000 rupees a month and get them to cook for them. They can hire cheap labour and sell the combined thing for much higher value. And they can keep all the profit.

    The farmer may spend all their time in the farm. Like a full time employment. But if you can pay not for that time, but for the onions they produce, it may turn out to be much cheaper. Which means you can buy more onions for the same money. And you sell those onions at a higher price. So, your profit increases. While the farmer remains poor.

    This is how it works. The entire system of capitalism is based on rich becoming richer and poor becoming poorer. “Specialization” and “rare-resources” are ways to become rich. And once you are rich, you have the license to exploit the poor.

    Socialism is where the farmer sets the price. (And not a “free” market). The farmer demands what is their due. The farmer does not have to give up their life to produce a season of crops. The farmer can say their “full time” is equivalent to that of a software engineer. And who would you be to deny?

  • My Obsession with Free Knowledge

    I have a peculiar attachment with free knowledge – the concept that knowledge should be free of conditions and unencumbered by geographical, economic, cultural, and any other avoidable barriers. This often puts me in a position where I strangely reject certain well meant advices simultaneously appearing stupid and arrogant to others.

    For example, a good friend and fellow citizen once suggested to me that I join Landmark Forum, a 3 day course that helps people understand their hidden biases and become more productive people. I listened to their forum leader speaking about how the course works and the psychology behind it and I was sure it would be a fantastic idea. But, when it came to registering for the course and participate, something prevented me from doing it.

    The other day I asked a pharmacologist friend if she knew any prophylactic treatment for syphilis. She went to UpToDate (or I’m not sure if it was some other similar service) and started looking up the information. I was curious what she was using and whether I could have it in my phone too. She said it would need a subscription, but she was willing to share her username and password with me. I said that I didn’t want access to it.

    Yesterday a close friend suggested Dr Thameem Saif’s lecture series on basic concepts in medicine for me. She said that it was really good and helps to grasp basic concepts really fast, saving a lot of time. I agreed with her on all that and said I wouldn’t attend the lecture series.

    Additionally, I hate the concepts of entrance coaching, tuition, etc.

    The pattern I see emerging is that I have constant disregard for knowledge that is held behind restrictions, especially if tied with a business. I don’t consider making a business out of knowledge evil. But I hold a pet peeve against using that kind of knowledge for my personal benefit.

    To understand this attitude, you need to look at the other things that I value and principles that I care for.

    Free software

    Free as in free speech, not free coffee. Here is an interesting paragraph from gnu.org about free software:

    The idea of the Free Software Movement is that computer users deserve the freedom to form a
    community
    . You should have the freedom to help yourself, by
    changing the source code to do whatever you need to do. And the
    freedom to help your neighbor, by redistributing copies of programs to
    other people. Also the freedom to help build your community, by
    publishing improved versions so that other people can use them.

    I have been an ardent user and advocate of free software for the past 8 or so years. The idea that there is collective ownership of software and people being able to make and share improvements on the software with each other thus creating a better product for everyone is addictive. So much that once you subscribe to this philosophy you feel grudge and guilt if you were to use or be forced to use non-free software for any task.

    I can still use Microsoft Word on my parents’ computer running Microsoft Windows to type a letter. But it simply won’t feel right.

    Open Web

    The Open Web is that part of the world wide web which is open for anyone to use, create, and innovate in irrespective of their location, race, gender, economic status, etc. according to me.

    Internet has enabled human dreams far quicker than any other invention. Internet is a great equalizing force. Internet has elevated human life to a higher level. And Open Web is the most important pillar of this success.

    With the Open Web, it is far more easy and quick for people anywhere on earth to share and receive knowledge. Collaboration is cakewalk. Building upon each other’s ideas becomes rule rather than exception. Charles Darwin and Gregor Mendel worked on two critical pieces of the theory of evolution at around the same time. But they never knew about each other’s work. Won’t ever happen in the internet age.

    When I see internet services that are “app-only” or requires sign in for viewing, I wince. They are justified in trying to retain users. But it simply won’t feel right for me to use such a service.

    Open Access

    With internet, the cost of publishing came to almost zero. And so one would think that science literature would become cheaper and cheaper to access. But the opposite is the truth. Scholars expend their lives trying to expand the horizons of science and publishing industry locks down their contributions to select few who are willing to pay exorbitant amounts of money to access this.

    People who fight these are killed. But their spirit cannot be killed. Open Access movement is gaining large amount of followers. When enough academicians hold fast to the promise that they won’t publish in money-thirsty journals, there will be a tilt in the way scientific literature is published.

    Science needs to be set free. And open access to scientific articles is crucial here.

    I’ve not published anything yet. But when I do, it will be open access. And I keep asking the people I have any influence over, to keep their contributions to the knowledge base that humans have built to be open access.

    Free Knowledge

    It is in this backdrop that free knowledge enters.

    Organizations like Wikimedia, Creative Commons, and even YouTube have done a lot to advance free knowledge. “Imagine a world in which every single person on the planet is given free access to the sum of all human knowledge.”

    If you have been reading carefully till now, you know that free culture is my culture. And free knowledge is an inalienable part of free culture.

    From as early as 11th standard, I have been using the internet and all the wonderful resources in it to learn. I fell in love with MIT’s OpenCourseWare. When NCERT textbooks weren’t enough I would run to OERs like CK-12.

    But when I joined MBBS I faced the greatest challenge ever. To date I have not been able to find any good collaborative (or not) open textbook online for medicine or any subject that medical education includes. There have been very good attempts like Ophtho book, Path Bites, Radiopaedia.org, etc. But the information is usually so scattered that it is very difficult to get a comprehensive understanding of the subjects.

    In this scenario, I was forced to resort to traditional textbooks. I made it a point not to purchase expensive textbooks. I’ve scraped all the corners of the internet to find out useful PDF files.

    And at the same time I made a pledge to myself that I will leave the condition a bit better by organizing the information that I find and making it possible for a future student to click on links and get access to various information as required. That is why learnlearn.in was born.

    Now that I have finished MBBS I no longer am under duress to stick to textbooks to avoid prolonged stay at a not-so-nice place. But, in the spirit of pirate philosophy, I continue to access resources that are required even when they’re not free knowledge. But I have set a personal restriction that I will not be using resources that aren’t obtainable from the internet.

    By doing this I am expecting to create a path which can be followed by others. I want success, but I want only reproducible success. I don’t want to be successful because I had access to a particular resource by virtue of my geographical, economic, cultural, or any other privileged position.

    So what about things I learn at VMH? Well, my plan here is to put everything that I learn here online. Also, a point to note is that at VMH there’s no package of knowledge that is sold. It’s all experiential learning that occurs here. And people are welcome to work and learn from here.

    Can’t you do the same with Forum, UpToDate, and Dr Thameem? Well, not impossible. But, like I said earlier about using Windows as a free software advocate, it just doesn’t feel right.

    But more importantly, by striving to learn exclusively from free knowledge resources, I create a demand for free knowledge thereby encouraging creators to produce more content in free domain and also allowing people who come after me to have a road that’s been taken before them.

    Let’s build a society where knowledge is free.

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

  • 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

  • Don’t put all your eggs in one Wikipedia

    If you have ever tried creating a wikipedia article on a not so popular subject you know how it gets flagged for speedy deletion even before you make the second edit on the page.

    For example, I recently tried creating a page for Swathanthra Malayalam Computing which anyone active in the free software sphere of Kerala would be knowing about. But, it was soon deleted. I have a fairly good understanding of how the WP:NOTE policy works and I was fairly convinced with my knowledge of reliable sources that SMC is notable enough to warrant an inclusion in Wikipedia. So, I started trying to convince the administrator who deleted the page (a non-Malayali, non-Indian) to restore the article. After at least 4 hours spent in writing essays to convince him, the article was partially restored to my User space. I was then asked to edit it, get it reviewed and then move it to the encyclopedia.

    This ruthless deletion of content can be understood from one point of view – that of maintaining a high quality encyclopedia which gives people immediate access to a brief summary of a certain topic.

    But that’s where Wikipedia (or rather Jimmy Wales) becomes slightly hypocritical and arrogant. It’s claimed (by who? by Jimmy Wales and many others) that Wikipedia is trying to give people free access to the sum of all human knowledge.

    Is this realistic or true? Can Wikipedia be the sum of all human knowledge? Assuming Wikipedia gets enough donations to run millions of servers. Can it include the sum of *all* human knowledge? Or, more importantly will it?

    Wikipedia quite clearly allows only encyclopedic knowledge to be included in itself. And there are quite a few guidelines on what content belongs to Wikipedia and what doesn’t. This very fact shows that “encyclopedic” is only a subset of all human
    knowledge and has two corollaries:

    1. wikipedia is not the sum of all human knowledge
    2. the editors will constantly be under pressure to categorize any
      knowledge as encyclopedic and non-encyclopedic and omit some of the
      information

    This is a handicap wikipedia has put on itself to
    make itself useful for someone who comes in for a superficial knowledge
    of a topic. Thus wikipedia easily becomes a ready reference to get an
    overview of things. But it becomes impossible to go deeper on anything.

    And this compulsion to trim articles by removing some facts selectively paves way
    for problems like the hegemony of asshole consensus.

    I believe the problem is that we try to put all our eggs in Wikipedia because we’re mistakenly led to believe that only the content that exists in Wikipedia is the content that is worthy of knowing. (Because you see, Wikipedia is the sum of all human knowledge). This is both false and stupid.

    Who decides notability on Wikipedia? The editors, based on notability guidelines. And who decides that? People like Jimmy Wales and editors who have significant majority or influence over the policy formation process of Wikipedia?

    Currently notability is heavily relying on reliable sources. Who decides reliability? In a world where censorship and political correctness is not unknown, is there a way to be sure that reliable sources are telling you the whole truth and nothing but the truth?

    Does these policies and guidelines take into account the perspectives of people who are under-represented on Wikipedia?

    How different is Wikipedia from a multi-author blog? Does having a million editors automatically make Wikipedia infinitely better than a blog if what the editors can and cannot do is decided by a smaller set of people?

    But, are you saying all codifiable knowledge should go on Wikipedia? Shouldn’t there be some kind of curation or peer review of what is right and what’s wrong?

    What I am saying is that Wikipedia should stop claiming that it is the summum bonum of human knowledge. (This should also help them be less arrogant when trying to push Wikipedia as the only website that people need access to)

    It is not, and it can never be.

    The closest it can come to that is to become a great foundation for building a federated system in which people can easily get started codifying all the knowledge that they happen to have. In fact, by creating mediawiki software they’ve done a great deal towards that.

    The next step they should embark on is federation. Federation instantly solves all the problems that I mentioned above. Because if one wikipedia doesn’t like your content, there would be another wikipedia to accept it. Instead of spending all your time and effort in convincing a random white male admin that your article is worthy or notable, you can spend it on writing down all that you know about your subject on a wiki where it is welcome.

    But remember that this is already how the Internet is. The Internet is decentralized and
    federated. “Knowledge” on the Internet is uploaded by whoever is interested.
    People have to spend some energy in figuring out what is correct and what’s
    wrong. Instead of censoring anyone, the Internet allows everyone to speak. Peer review and content curation is implemented not by removing content, but by adding more content. If there’s something wrong on the Internet, there’ll be another article on the Internet explaining why it is wrong.

    Wikipedia can help a lot if it tries to facilitate this process by encouraging federation. But instead if it tries to be a centralized authority, it is hampering access to knowledge.

    In other words we must give Wikipedia only the importance that it deserves – just another multi-author website on the Internet. Wikipedia is not the sum of all human knowledge; the Internet could be.

  • Secure Communication on Mobile Phones Using Only Libre Apps

    I have previously written why I prefer Telegram over WhatsApp and that gap continues to widen since Telegram introduced an API for building bots and since WhatsApp sent me a legal notice for building a bot.

    Meanwhile, one thing we should remember is that despite Telegram’s promise that it’ll eventually open source all code, its server side code isn’t open yet and shows no sign of being open any time soon.

    People like me often wonder if there can be a completely free working application for secure mobile messaging.

    TextSecure is hailed upon as a solution to this issue by many. But, its developers have trust issues with f-droid and also want Google Play Services installed on the phone which’s ridiculous in my opinion. People who’d want to use TextSecure instead of Telegram are the people who would want complete free software on their phones and TextSecure is virtually impossible to be installed on your CyanogenMod phones unless you flash Google apps which beats the entire purpose.

    Another approach was brought out by Tox which worked almost like a torrents did, with a peer to peer messaging system. But this consumes large amounts of data on a mobile device and leaves one less than satisfied.

    I often tend to like standards based approach in situations like these. And the only long time IM standard that I know of is XMPP. But, the way XMPP is defined right now there are a lot of things that make it unsuitable for the mobile environment.

    1. Nobody is developing a good XMPP based solution.

      There is an app called Conversations which is very very nice. But if you were to list down the steps to get started on it here’s how it goes:

      • Buy the app on play store OR allow untrusted sources, download & install f-droid, then download & install Conversations
      • Find an XMPP server
      • Sign up for the XMPP server
      • Notify friends (probably through other means) about your XMPP id
      • Enable encryption manually and only when mutually agreed upon.

      This complicated approach can never get the critical mass of people on it.

    2. That bit about encryption deserves to be a point on its own. As of now, OTR is the most popular solution for encrypted chat on XMPP. But OTR works only if both sender and receiver are online at the same time. OpenPGP based encryption is unreliable. Encryption will probably be solved when axolotl support gains traction.
    3. Contact discovery is more important than we think it is.
    4. Push messaging?

    That’s where Kontalk comes in. Kontalk is built on top of XMPP and stays as close to standards as is possible. It is encrypted by default and designed to save on the server as little information as possible about the clients.

    Kontalk supports push messaging which is a battery saver on mobile phones.

    Also, the contact discovery on Kontalk is based on one’s phone number (just like on Telegram). This makes it easier to find friends using Kontalk.

    But Kontalk still doesn’t have group chat support. It doesn’t work on multiple devices simultaneously.


    The way forward

    An ideal mass messaging client should have the following features

    • Easy to use, even for the least technical people.
    • Encrypted.
    • Allow discovery of contacts with existing contact information.
    • Support multiple devices and sync chat history among them.
    • Support group messaging. 
    • Support push notifications.
    • Use as little data as possible.
    • Allow sending files. 
    • Federated. 
    • Follow standard protocols (or create them if none exists)

    Both Conversations and Kontalk get some parts of the above feature set correct. But neither fulfills it completely.

    Diaspora now has built in XMPP server thus allowing Conversations to connect with it. Once it supports tigase it can be made to also support Kontalk.

    Ambitious diaspora pods like poddery.com and diasp.in are certainly dreaming of a social future where diaspora and XMPP are closely knit together to form a standard based, federated, secure, free, self-hostable, cohesive social network infrastructure.

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