Today is Wednesday
September 19, 2018

Category: tech

July 6, 2017

Using Browser plugin to crowdsource against fake images

by viggy — Categories: internet, social, software, tech — Tags: , , , , Leave a comment

Recently we have seen an exponential increase in circulation of fake news and images. Fake images play a major role as with some simple image editting, a completely different context can be conveyed. This menace has been used by various political parties to spread their propaganda.
With Google Image search being so powerful, I propose that it should be possible to use a browser plugin to verify the originality of the image. We can use Google Image Search to find other sources where the image is used and hence get different contexts of the image. Once this is developed, a repository of responses from the users may be created where they can easily report images which they feel are being used in wrong context on a particular website. As this repository improves, what we will see is that most of the images can be captured in the repository so that for the same image, we do not have to depend on Google Image Search everytime but rather use the repository itself.

Let us now look at how a common user would use the plugin.
A user who has the plugin installed browses a webpage with different images on it. Suppose he/she is interested in understanding the source of the image, the user right clicks on the image and selects the option, “Search For Source”. Initially, this should cause a Google Image Search Query and the results along with the websource of the images found should be displayed in a dailog box. The user should be given an option of reporting the image as original or fake based on the results shown along with option of marking what the user thinks is the original source of the image along with some comments.
This usecase seems to be a good starting point to release the plugin as version 1.

In the next version, we should be able to first look at the repository of all the reported images and give a much better information about the image based on all previous reportings of the image. As the community grows, we would ofcourse want moderation of reportings to ensure that false reportings by the very people spreading false news is avoided. An open structure similar to Wikipedia would be needed to ensure a fair community is developed to keep the system unbiased and trustworthy.
An API of the repository can also be created so that social networking sites and messaging platforms can develop support in their platform so that when images are shared on their platform, users automatically get the information from the repository. For example, a simple bot for telegram messaging platform can be developed which can be asked to show the information from the repository based on a certain command when a image is shared in a group. Ofcourse we need to ensure that private images from people’s chat is not shared in the repository and necessary checks and balances are put in place for the same.

June 23, 2015

Accumulo and Hbase – Differences in its API, classes

by viggy — Categories: tech — Tags: , , , , , , , , , Leave a comment

As part of my GSoC project, I am working on adding support of HBase in GeoWave. Currently Accumulo is already well supported. Hence one of my main task is to understand the existing tests and examples and add support for the same for a HBase store.
One of the main challenge I am facing is there is no easily available mapping of Accumulo Classes to HBase classes. So in this blog, I will try to do the same.

Basic Entity Classes
Accumulo HBase Remarks
Key KeyValue HBase doesnt have separate entity for Key and Value. It stores everything as byte[].
Value KeyValue
Mutation RowMutations Accumulo exposes put/putDelete method whereas HBase has Put and Delete classes to Put in and Delete a single row respectively.
Scanner/Writer Classes
Accumulo HBase Remarks
Scanner/ScannerBase Scan Accumulo has a structured class heirarchy for scanning where in HBase I have only used Scan as of now.

TODO: To add about establishing connection, authentication, Write to store, Iterators/Coprocessors

September 22, 2014

No more reinstall campaign #AvoidedReinstall

by viggy — Categories: FOSS, FSMK, linux, ubuntu — Tags: , , , , , , , Leave a comment

How often do you screw your GNU/Linux based system such that you decide to reinstall your system? Are you the go-to person in your group for any issues with any GNU/Linux based OS? How often do you suggest to people who come to you that there is no other way to recover than re-installing?

I have been helping people to migrate to GNU/Linux based distribution, mainly Ubuntu. And its quite often that I come across people who while doing something or other have messed their system and need to help to fix it up. More than often, I used to give up quite quickly and ask them to take a backup using live-boot and reinstall the system. Many times, I would just search for first error I noticed and see if I could get solution online and if that didnt work give up and ask to reinstall. Though this is quick, it actually meant that I wasnt learning anything new. It also meant that many things in Ubuntu which might have been actual bugs might not be getting noticed due to this.  And it also contradicted one of the popular examples I used to mention as to why Free Software is better than proprietary? Have you noticed the Blue Screen of Death, Can you fix it on Windows? Because Free Software allows you to study it and play with it, you can know why your system has actually crashed and try to understand how to fix it. Really? How often do we do that?

Hence I have decided to start this self-campaign and if possible motivate others to also follow it where in I put my maximum whenever I come across a messed up system to recover it without reinstall. The way the success of this campaign will be judged is by maximum number of systems I can avoid reinstall before coming across a system I am forced to reinstall as I cant find any other way around it. Hopefully as time goes on, the gap between every two systems forced to reinstall will increase which would mean I am improving/learning and avoiding many more systems from re-install.

I am already successful in doing it for 1 system. Hoorrrraaaayyyy!!!!! Hence #AvoidedReinstall 1 I spent 3 nights on it, close to 8-10 hours in all but finally it is recovered and system is now working without having to re-install Ubuntu. Hope to find sometime and blog about it also.


August 14, 2014

Feed of the blogs based on tags

by viggy — Categories: FOSS, FSMK, linux — Tags: , , , , Leave a comment

For the FSMK Planet, we are asking students to give us Feed links based on tag FSMK. I will use this blog to explain how to do the same in WordPress and Blogspot.

For WordPress:

If your blog in WordPress Platform is “” then the link for the ATOM feed for FSMK tag is

Please note that in WordPress, tag is case-insensitive, so FSMK, fsmk are both the same.

For Blogspot:

If your blog in Blogspot platform is “” then the link for the RSS feed for FSMK tag is

Please note that in Blogspot, tag is case-sensitive, so FSMK, fsmk are different.
So ensure that you are using the right cases for the tag so that all the blogs are shown in the planet.


May 13, 2014

JavaScript browser code to invite all your friends to like facebook page

by viggy — Categories: FOSS, FSMK, FSMK, programming, web — Tags: , , , , , 1 Comment

We have recently announced the FSMK Summer Camp for the year 2014 and also have a facebook page for the same. We wanted to spread the word out about the page by inviting all our friends to ‘like’ the page. FB shows you a list of your friends  and gives an option to click ‘invite’ for each one of them separately. When you do this, the invited friend gets a notification about the invite and hence more chances of his liking the page.

However this is still cumbersome as it means to invite all your friends which may be around 1000+, you have to click invite so many times.

But you have java script to the rescue. All you need to do is open javascript console on your browser and then execute the following code:

//Note that there is a space after uiButton. This class is the class of the invite button.
var inputs =
document.getElementsByClassName('uiButton _1sm');

for( var i=0; i < inputs.length; i++)

To find out how to run javascript code in Firefox, check the following link.

If sadly you are not using the best and fastest browser, Firefox, then you can of course find similar tutorials for other browsers or realize it is time to switch to Firefox as Firefox29 is just released and its AWESOME!!!

P.S. The code was shared to me by Karthik Nayak from BMSIT GLUG.

March 18, 2014

December 12, 2013

Using jhbuild to compile and run gnome applications

by viggy — Categories: debian, FOSS, FSMK, linux, software — Tags: , , , Leave a comment

I have been trying to compile and run gnome-chess from source. The first way, I tried was by downloading the source tarball and then running configure, make and make install. This worked fine after I fixed the dev libraries dependencies. This is one of the first point that you need to remember if you are compiling anything by source on any GNU/Linux distribution.

Point 1: If the compilation fails due to bad dependencies, it is generally because the dev library of that package is not installed.
If on debian, use apt-cache search to check which pacakges are available to download and apt-cache policy to check which package version you currently have installed.

This worked just fine and I was able to run gnome-chess with the latest code. Now when I modified few lines of code and tried to build it again, I started getting errors and that too in files which I hadnt even modified.

After looking a lot around for answers, I decided to use jhbuild and try compiling the source using it. I had hoped that it will help resolve all dependencies issues and hence I will be able to run the modified code.

I do not understand jhbuild yet completely, however I started following the manual in the gnome website.
Downloaded the jhbuild source from git repo.
build is using, make and make install.
Copied the sample jhbuildrc to my ~/.config directory.
Ran jhbuild sanitycheck and fixed the issues that were shown.
Then ran jhbuild build. This again gave me close to 60-70 missing packges.
Went through each one of them and again installed all the dev libraries.
Then when I ran jhbuild build, it started the process of downloading the source and building each of the gnome packages. In all 175 of them.
Finally I was loosing patience as some of the packages were as big as 300MB say for GTK+. It didnt make sense that just to build gnome-chess, I needed to build complete gnome from source.

This is when I met Mario(maweki) on #gnome-chess on IRC. Frustrated, I had sent a mail to few minutes ago and he pinged me on IRC to help me.
He explained to me patiently what I exactly need to do.

Point 2:
So if you need to just compile and build gnome-chess,
Add the following in your jhbuildrc file which should in ~/.config directory.
ignore_suggests = True
This will reduce what needs to be build as much as possible

You can use the following command of jhbuild.

jhbuild build gnome-chess
Note: I had not given any module name in my previous command and hence it was downloading everything required for gnome.
This for me downloaded only 21 packages.
In some cases you may have to first build gnome-standard-themes package first. This is when the application doesnt use graphics but css-rules.

You can run jhbuild it using
jhbuild build gnome-standard-themes

However this might not always be necessary for all applications. So you can skip it safely also.

Point 3:
If you make changes to the source file and want to build the application again, use the following command
jhbuild buildone -n 'application-name'

buildone just builds the single application
-n switch is for networkless building and this will ensure that the source from your local directory is picked rather than checking out from the repo.

Point 4:
If you want to run the application from the newly build source, use the following command,

jhbuild run 'application-name'
By this, you should be able to see the changes, if any you made in the source directory.

Most of the pointers above were what Mario suggested me. I hope this would help you to get started with atleast downloading, compiling and running gnome-applications from source.

October 18, 2013

Being committed to free software is the only way forward

by viggy — Categories: FOSS, FSMK, linux, software — Tags: , , Leave a comment

One of my friend shared this article about how Facebook is now a leading open source contributor and how most of the web giants are encouraging open innovation. The article also mentioned about how this trickle down is helping the community in general. Though I largely agree to the points mentioned in the article, I think the author missed one main point.
It only makes sense to open source your changes rather than maintaining forks
Its a common practice for any start-up to go with free software tools. When you are experimenting lot of ideas, free software tools help you to quickly come up with prototypes which you can get it validated with potential customers. The teams can also work independently without having to deal with licensing costs and other agreements with proprietary software companies.
What I think the article missed to point out is that when companies start developing their infrastructure around free software tools, it becomes a necessity for them to contribute back their code to the parent repository. Else maintaining and merging different code bases as and when new released for the particular project is released becomes very time consuming defeating the whole purpose of using free software tools. Hence I think it is not that Facebook and Google want to open source their technologies(Definitely, it can be that they want to contribute to the community), but the choice of becoming free software users ensures that you also contribute your changes back to the repository.
For example, we know that Google dumped its Google Compute Engine Linux and shifted to Debian as per this report.

September 26, 2013

Project Idea: Hacker of the week through github and gitorious performance

by viggy — Categories: FSMK, linux, project, tech — Tags: , , , , Leave a comment

Technology Required: Php/Python web frameworks like Django/RoR, Git, Mysql/MongoDB/Any other database.
FSMK has many students who have started using github and gitorious and keep working on their own projects or contribute to any existing free and open source projects hosted there. The idea is to have a web portal which keeps tracking the contribution/activity of various FSMK students on gitorious and github and rank them based on various factors. Ultimately, every week, Hacker of the week will automatically be announced. The project is to have a web portal to do this automatically every week without needing any manual intervention. There should be one way for students to register to this portal along with their github/gitorious id and the admin of the portal will approve the student’s registration. Similarly College of the week can be announced. The portal should also maintain a record of all the previous week results.

In Version 2, When a new user is registering, certain criteria needs to be met like number of active days on github/gitorious, number of times contributed to projects, minimum score based on various other criteria. Also whenever the coder of the week is announced, it needs to send email to fsmk-discuss mailing list and also update in FSMK Facebook group.

February 9, 2013

GNU/Linux uptime worldwide

by viggy — Categories: FSMK, linux, tech, ubuntu — Tags: , , , , Leave a comment

Wont it be great to see what is the total time that users across the globe are spending on their GNU/Linux Desktops. What if every time a user signs in a system, their usage time is recorded and once in a while this usage data is uploaded in a server. We can then extract lots of data like how much time is being spent totally, which are most popular operating systems based used, based on average uptime, we can find out the type of users and their preferred operating systems.

For example, we can may be find that people who are using say 3-4 hours a day on GNU/Linux are mostly Ubuntu and people who are using say more than 12-14 hours a day are mostly on Debian or Mint giving an indication that new users choose Ubuntu but they slowly shift towards Debian or Mint. Again just a hypothetical example.

We can also plan to have a competition at GLUG level to see which GLUG is spending most of their time on GNU/Linux.