We only live twice or so it is

So, another day gone. I just happened to fill up another couple lot of online forms for some website, providing them with my email address and in some cases my Facebook ID.  For an average Internet user  filling up these forms or “signing up” using a Facebook ID (or in some cases an “Open Id“), maybe just another added up minutes until one  finally gets the personalised feature on one’s favourite web site. However, ask anyone signing up into these pages and you will get an answer that no one is actually sure how or where is this personal information going to be used.

Sign Up ImageSo, lets dig a bit deeper into this, shall we?

The World Wide Web (read the Internet) was created by people who loved sharing information. As a result this huge network of devices and people from all over the planet came into existence. Beginning in the later half of the previous century this phenomenal existence of the human beings provided them with a  much sought after virtual ground where one could anonymously express one’s opinion or simply be a part of the Web revolution. For some years though this was the scene, but with the rise of companies that sought “to improve user experience” on the web, the marathon to seek user’s personal information had just started. This altogether had a different impact on the Open Web the people intended to have. Unlike what the makers though there came in several new problems like “phishing”, and “spam” or in some cases companies or governments feeding on the user’s personal information. Then the consequence of this saw people having “privacy” filters and in some cases using Internet Services under pseudonyms.

In what seems to be a shot at the British Surveillance, British Director David Bond made a documentary and published an article on government surveillance and the use of personal information. Although Bond’s attempt have raised some eyebrow’s the picture regarding the use of personal information, be it in the form of marketing/advertisement or government surveillance, the bigger picture is still pretty unclear.

Presently South Korea has a law that makes people use Internet services under “Real Names”. With such laws coming together and the governments worldwide trying to portray a Big Brother like role in the Internet, the proper use of personal information on the web still seems a long a way to go.


[Floating Point] Maths is tough!

Random ASCII - tech blog of Bruce Dawson

This post is a more carefully thought out and peer reviewed version of a floating-point comparison article I wrote many years ago. This one gives solid advice and some surprising observations about the tricky subject of comparing floating-point numbers.

We’ve finally reached the point in this series that I’ve been waiting for. In this post I am going to share the most crucial piece of floating-point math knowledge that I have. Here it is:

View original post 3,863 more words

Tech Tip 101

Ever wonder’ed what’s the best way to indent all unindented files on your Linux machine. Well, although there is a program called GNU Indent that does this job of indentation, it’s probably not has handy as when you know it bit by bit.
Probably, the first thought that strikes us about how to do this is by simply typing
indent -kr -i8 *.c

However, pretty soon, you’ll realize that this method simply does not work.
The solution to this shall easy as cake, we can use concurrent processes to do the job like
for f in *.c
indent -kr -i8 $f &

This method, though works for a small number of files, its not good if the number of files is large, since memory is consumed by the concurrent processes.
The solution that I found was to do this in batches. For example :

for f in *.c
indent -kr -i8 $f &
(( count = count + 1 ))

if [[ $count -eq $limit ]] then

Use Git over SSH with Corkscrew

While it may be easy to access git at home or a personal Internet connection, doing the same in a corporate environment or at a university connection is not an easy task. Draconian proxies creep around the free Internet at such places where access to free knowledge to the world of IRC and Git is forbidden. In such circumstances, the use of a simple tool named corkscrew can do the trick.

Corkscrew is simple tool that allows tunneling ssh via port 443 which is used by SSL. As a result if a university or a company allows connect on port 443, ssh can make use of this. Using this technique, one can easily access github repos via the custom URL ssh.github.com .

Unix/GNU Linux Family

1. Download Git. At the time I was writing this I am using Kubuntu so I simply did apt-get install git-core

2. Download and install corkscrew (http://www.agroman.net/corkscrew/). This is a tool for tunneling SSH through HTTP proxies.

3. Edit or create the file ~/.ssh/config and put the following:

ProxyCommand /usr/bin/corkscrew proxy.example.com 443 %h %p ~/.ssh/myauth

Host github.com
User git
Port 22
Hostname github.com
IdentityFile “/media/truecrypt1/Keys/GitHubKey.private”
TCPKeepAlive yes
IdentitiesOnly yes

Host ssh.github.com
User git
Port 443
Hostname ssh.github.com
IdentityFile “/media/truecrypt1/Keys/GitHubKey.private”
TCPKeepAlive yes
IdentitiesOnly yes

  • The ProxyCommand is invoked when ssh needs to make a connection. We are telling ssh to use /usr/bin/corkscrew. This is a 3rd party program that sets up a socket through the HTTP proxy.
  • The program /usr/bin/corkscrew takes as its 5th argument a file containing credentials for your HTTP proxy. Not all proxies need authentication but if you do just put in the file a single line formatted username:password.
  • The Host github.com indicates to ssh that if we are connecting to github.com to use these specific settings. There is nothing special here except we specify the location of the private key that corresponds to the public key we had over in http://www.github.com/
  • Notice we have another entry titled “Host ssh.github.com” . This is to get around proxies that only allow the CONNECT command over 443 (the truly locked down ones). To get around this github setup a whole separate host that listens on port 443. We add both entries here since they are both valid.

4. If everything is setup correctly you should be able to run:
# ssh github.com

Hi user! You’ve successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

If this doesn’t work you can run
# ssh ssh.github.com

And get the exact same thing. If the first command didn’t work it means you are using a proxy that blocks CONNECT on port 22. Almost no proxies block CONNECT on port 443 because you need that for SSL.

We get a no shell access message from github because we are trying to obtain a shell and github has it disabled. However this indicates everything is working. This concludes the setup for POSIX based Oses.

SVN for n00bs

Well it has been quite some time since I wrote a straightforward “technical” post. Though I’ve been criticised for this, today I’m finally posting something which might be useful for many of readers like you. (thus increasing my page rank on Google :P).

Okay, if you’re now to this.

Have you ever wondered how a FOSS project works. I mean you must be using software like Firefox or programming in Netbeans but has it ever occured to you that how do these completely non-profit volunteer driven projects manage to keepup with code updated globally in intervals of seconds.

Generally, this is where the Internet comes in to picture. Be it big or small almost all FOSS projects put up their source code online in a place called repository or repo for short. Thus, if anyone needs a copy of the code or needs to make changes the visit the repo. But HOW??Well yes of course there’s some “software” involved in this little trick. Its called subversioning or concurrent versioning. And being very basic, its a software that helps in manage and check the most current or the recent version of the same software repository that is hosted. Moreover, it provides a discription of what changes have been made to a particular repo by a specific user.

Now,  like many other version control systems I’m introducing here some basics of Apache Subversion or SVN

What is SVN?

SVN is a version control system. Linux and Mac users should have it installed already (otherwise, it will be available through your package manager).

The term SVN checkout means to get the repo’s copy on hardirve

The term SVN commit means committing to the repo.

The term SVN up means updating the repo to relfect the changes done.

So, with that much done and said here is a demo project repo that I made for a solitaire game in java.


(More to come in this regard)

–April Fool’s Day 2011


NIT WarangalSo, once again its another morning in the never ending hectic lifestyle of NIT Warangal. It seems to me though that with semester coming to an end the number of extra classes in all departments have increased. Pretty expected at Institute of National Importance.

Okay, so now its another day in the life of an NIT Warangal student. And you (yeah the reader) might be wondering what is all this stuff doing in a Blog that calls itself FOSS dedicated, then just just hold on l I’m getting pretty much near to the topic.

First things first, starting with the OS itself.  There seems to be a phenomenon in the campus that persuades people to not just use Windows but LOVE it. Wait, that’s not just it. Further more, students seem to thinking “inside the box” when it comes to “developing” software. The impact is so deep rooted into the people around that even the prominent teachers of the Computer Science and Engineering Department was quoted saying that the programming skills taught here and the knowledge given are only job oriented. So much to say for a college one of whose students made this year into the prestigious Standford University, that too much ironically in Computer Science Department.

Now, with so much done and said. It seems though as if, the so called “Institute of National Importance, NIT Warangal” seems to be producing only dummies for multinational companies to play on.

Anyways, need to end my post now. I happen to have a lot of non-innovative assignments to do. Meanwhile, just out of connection to the topic I’m posting a relevant song.