Sunday, June 7, 2009

BSNL Broadband FTP Connectivity!

Bsnl is the 'de-facto' standard for most Broadband using homes, specially in my area. Known for it's cool speeds, abridged connectivity and easy availability from Bsnl landline makes it a very easy and optimum option for most junta.

Recently I was fiddling with the router/modem that the Bsnl guys supply with their Connection. It was pretty interesting to note that you have the option to allow access to some ports like FTP( 21 ), Telnet( 23 ) and even port forwarding.

I dont know if people have tried this thing but I was able to make my computer visible to the internet by a mix of Port Forwarding and Opening the FTP port for access. This guide shall take you through a detour as to how you can be in touch of your Desktop PC connected via a Bsnl Router/Modem anywhere in the world ;).

Know My IP

First thing to note about Bsnl connection is that your global IP( IP of the modem ) is Dynamically assigned by the Bsnl guys. This is helpful in using a smaller range of IP's to serve to a large number of users. Suppose Bsnl serves 1000 connections, but only 500 are online at a given time. If it uses Static IP's then it has to purchase 1000 such IP's! But if it assigns them Dynamically then only 500 shall do... reducing the production cost by 50 % ;)

So in order to access your computer through any Internet m/c you need to know your IP at that given instant. Hmm, I dont know a fixed way to do this, but if ur computer remains on for a particular session... the IP cannot change during that time! You can use www.knowmyip.com for the current session IP.

Typical Results
---------------------------------------------------------------------------------------------------------
Your ip is: 59.95.178.126
Your hostname is: 59.95.178.126

---------------------------------------------------------------------------------------------------------


Hence your IP is the above value! Bsnl has two typical ranges, this is the old modem/router range.

Locally Static IP

The computer which you use to connect to internet is inside the router's network, this is called subnetting whereby a group of computers connect to a common gateway for their internet requests! You can have a good overview here, rather DO HAVE A VIEW AT THIS: http://www.portforward.com/help/portforwarding.htm

You might skip the part from Port Forwarding but the rest is essential for understanding. Your task is to assign a Staic IP to your computer. Then you need to set your computer to a Static IP by the following: http://www.portforward.com/networking/static-xp.htm

For linux do the following:

1. $/sbin/ifconfig -- Note the information corresponding to the Internet Connection
2. vim /etc/network/interfaces

In the interfaces file locate the Ethernet number corresponding to the Internet connection, if it is presently on dhcp the entry will be like:

iface eth0(1) inet dhcp

In this case change this Dynamic Allocation to Staic by:

iface eth0(1) inet static
address
netmask
gateway

And restart networking by:

$/etc/init.d/networking restart

This will give you the Static IP required for the purpose!

Open the FTP/TELNET Ports on Router

The router by default will reject all incoming information that is not a reply to some query by you. But in case you want to access the computer from a remote place you need to tell the router to allow specific port to be open for access. In my router the following page is helpful, it's a bsnl router so log in by putting this in the browser address bar:

http://192.168.1.1/

Use admin:admin as the uname:pass, if you have urself changed it earlier use that pair instead!

Following pics are for UT300R2U Modem.


As you can see that the common services are blocked in here! If you have a page similar to this try unblocking the FTP/Telnet services so as to allow access from outside! This might be just a precautionary measure so that we do not get locked from router itself!

Port Forwarding

Follow the instructions from http://www.portforward.com/english/routers/port_forwarding/routerindex.htm for your specific router! Remember we will be doing a FTP login... hence forward the port 21 for now. Also allow all ports from outside to connect to your FTP port!

Setting Up the FTP

There are many lot Operating Systems and also solutions for a FTP server, my personal choice is vsftpd which is a lighweight FTP server for Linuxes, in case of Windows, try scratching the market for an appropriate solution :).

You need to configure your FTP server according to your own needs, generally you would like to keep anonymous login DENIED so that only authorized personnel( generally only YOU ) may access the resources! I would not go into the working of FTP server as it is not a part of this scope.

Testing the FTP

For testing the FTP there are two ways, one from your own computer or a computer inside the LAN of the router/modem and other is from an external network. The better of the two is to use the external network, but then you'll have to find a patient person to give instructions :P.

From within the computer

Ftp into the local computer set for port forwarding
--------------------------------------------------------------------------------------------------------
$ftp 192.168.1.4
Connected to 192.168.1.4.
220 (vsFTPd 2.0.7)
Name (192.168.1.4:sanket): sanket
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
--------------------------------------------------------------------------------------------------------
This output shows that your system is accepting FTP connections from local network.
Try to retrieve files,
--------------------------------------------------------------------------------------------------------
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Jun 05 06:08 Desktop
<...>
drwxr-xr-x 24 1000 1000 4096 May 18 07:47 netbeans-6.5.1
-rw-r--r-- 1 1000 1000 11 May 19 19:17
<...>
226 Directory send OK.
ftp> get output
local: output remote: output
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for output (11 bytes).
226 File send OK.
11 bytes received in 0.01 secs (1.3 kB/s)
ftp>
------------------------------------------------------------------------------------------------------------

The file is saved to the folder from where u executed the FTP command!

Testing from external network is more essential!

Testing from External Network


Testing from external network shall require a external computer, maybe some friend who's willing to help you out. The procedure is pretty simple...

Get the external IP of your Router/Modem from http://www.knowmyip.com/
Tell ur friend to log into the system by,
$ftp

Rest checks are same as for an internal network!

Here are some snippets of my friend accessing my system from outside the network :)



Note that here while pasting file it gave 550 error! That is because my FTP server was set up so, please make sure your FTP settings are cool enough!




Saurav using FireFtp to do FTP transactions

Saturday, May 30, 2009

Mailman - Python powered mailing list manager

This post can be entertained by people who are list administrators wanting to add Custom Handlers to their mailing lists or audience to learn what Mailman is all about.

First I would like to congratulate all the people at GNU for churning out such useful *and* free softwares( read Free Software Foundation ). Hats off to Stallman for the phenomenon called GNU and FSF!

So what is Mailman all about, it's a mailing list manager... something very similar to a google group. When you start a google group you get an account where you may make changes, moderate and do stuff... but you have a limit to customization! The more common and professional way to manage mailing lists is to use Mailman ( or other mailling list managers )! My version of setting up the server was a complicated one though... it included the following steps:

1. Deploying a Mail Transfer Agent Locally, i used Postfix, other choices- Exim, Sendmail
2. Installing mailman on the same server, there are lot of permission issues.... be really aware of them :D
3. Testing the server and the mailman installation, if everything is right do next!
4. Customizing the installation with Filters you would like to have, Mailman has an easy interface to write plugins in Python
5. Getting a Global Domain so that servers like google, yahoo can connect to me on port 25( SMTP )
6. Initializing lists and populating members through the Web Interface( the coolest part ;) )

I'll take up step 4 for you guys.... rest steps require more of installing capability and negotiating it out with your ISP to grant you a DNS entry :D ( our side ISP's are cool enough ;) ).

The architecture of Mailman has a feature called pipeline, if you lookout for the file Defaults.py in mailman/Mailman/Defaults.py somewhere in /usr/lib or /var/lib or /usr/local/lib. There is a setting variable called GLOBAL_PIPELINE. This is a generic setting of the process a Mail has to go through. Though there can be exceptions for lists or mails directly to the Admin. You just need to place your own Handler in some suitable place. No, no dont edit the Defaults file, do this rather:

in mm_cfg.py add:
GLOBAL_PIPELINE.insert(GLOBAL_PIPELINE.index('Hold'), 'MyContentHandler')

This adds a handler called MyContentHandler.py BEFORE hold. The corresponding file should be pasted in Mailman/Handlers/ folder.

[Remember whenver you make a change to the MyContentHandler.py file reload mailman, the workaround could be to compile it locally... do as you wish!]

I'll post the handler I wrote... :

#Author: Sanket Agarwal
#Email: sketagarwal@gmail.com

"""Determines whether the content of the message that has been passed to mailman conttains any 'restricted' words!"""

#All imports taken from Hold.py
#TODO:Eliminate the non necessary ones
import email
import Hold
from email.MIMEText import MIMEText
from email.MIMEMessage import MIMEMessage
import email.Utils
from types import ClassType
import re

from Mailman import mm_cfg
from Mailman import Utils
from Mailman import Errors
from Mailman import Message
from Mailman import i18n
from Mailman import Pending
from Mailman.Logging.Syslog import syslog

# First, play footsie with _ so that the following are marked as translated,
# but aren't actually translated until we need the text later on.
def _(s):
return s

#The custom error class
class ForbiddenContent(Errors.HoldMessage):
"""This class defines our custom error for filtered content"""
reason = _('The content posted was caught in the filters!')
rejection = _('This message cannot be accepted.')

# And reset the translator
_ = i18n._

#The malicious content filter

def is_illegal(thread_text):
""" This function Returns a true if it finds a piece of illegal/illicit content in the message text, the whole thread has to be parsed unfortunately, as the sender can easily modify the message in case we neglect the history of the thread """

find_match = re.match('\w*bad_word\w*',str(thread_text))
if find_match == None:
return True #Content is cool enough
else:
return False #Restricted content found


def process(mlist, msg, msgdata):
#Experimentation period!
thread_text = email.message.Message.get_payload(msg)[0]
if( is_illegal(thread_text) ):
raise Errors.RejectMessage, "Your messaage was perhaps marked as containing some restriced content... such strikes might ban you from the list! \n -Sanket \n List Admin"
Hold.hold_for_approval(mlist,msg,msgdata,ForbiddenContent)
else:
pass


Pretty cool huh ?

You can have a pigmented version at my website.... http://maillist-cse.iitkgp.ernet.in/kgp/cab/4/

So referring to the pigmented version lemme take you through the code:

Ln: 1-2 , Thank you guys :D
Ln: 6-22: Pretty much from the Hold.py, I had to hold the messages that were caught... so that's why Hold.py
Ln: 40-58: This is the logic which checks if the message text contains bad content... using regular expressions is the best bet! Have a look at the python re docs for details.
Ln: 30-33: Extends the Errors.HoldMessage, a hold of message means that the message will go for moderation!
Ln: 50: A must have method, every handler has it... so should you!
Ln: 52: Extracts the text part of the message, look for Pyhton email.message Docs for details
Ln: 54: Here you go! The message shall go to the list-owner for further approval!

I liked this plugin thing because it makes all the more sense to make my filters only for Mailman or for that reason, the script might be restricted to a particular mailing list( I'll give the link... keep reading ). U might not have the server write privelages to properly setup a SpamAssasin or some other mail filter, but when you've got the Power of Python and Source of Mailman. Go here for a more technically sound version... but you wont find the code newhere else ;)

http://wiki.list.org/pages/viewpage.action?pageId=4030615


"""May the source be with you"""

Friday, May 29, 2009

Mixed Bag

This is what happens when you think too much for the title of your post... you end up with such a gross one, "Mixed bad", eh?

But as I always talk about what I've done in the last few days or weeks, perhaps a fortnight... this time I really have some mixed stuff in store.

West Bengal.... the first thing that might come to your mind is Mr Karat, who lost the battleground to the Gandhi Family but what comes to my mind is not the Communist but something way more dreadful, something which you can't escape... not even in your sweetest of sleeps[non wet ;)], a nightmare and day killer.... the HUMIDITY!!!!

When you've got a 90-95% average humidity and rainfalls which do no good for just over an hour of their vicinity, life's real tough. But as you might have heard, Aila Cyclone hit West Bengal ... though it didnt cause any regretable damage... trails are still visible, and roads say it all... here are some pics of the same:-

Just outside my hall, RK Hall of Residence

Water cluttering the ground... things were much worse in night

One of the "not so common" areas of the campus!


The trails of the monster are visible, but as the campus is fairly scarcely populated nowadays, the aftermath was not a big deal to handle :D.

But things in life are more important than L[Aila], and I being a fraction of workaholic did some progress in terms of my present works.

If you followed my posts... I am presently working on setting a mailserver, a webserver and a NLP project.

Well today I am going to discuss a bit about how domains are maintained, which is of direct consequence to mail/web or any sort of networking!

Consider the familiar www.google.com, www.yahoo.com or the less familiar like, cse.mit.edu.
Whatever I've written above are common in terms of regular use... but the concepts which make them theoretically consistent are pretty interesting.

So we know that when we give a address in Firefox it translates them to IP addresses.... if you didnt now you know.... :). Every human readable URL( Universal Resuource Locater ) converts to the computer format of xxx.xxx.xxx.xxx eg: 203.9.8.17 or 77.45.32.22 etc. I use the tool called 'nslookup' to do such queries... lemme take you through some output:

###############################################
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 209.85.153.104
###############################################
Name: google.com
Address: 209.85.171.100
Name: google.com
Address: 74.125.45.100
Name: google.com
Address: 74.125.67.100
###############################################
Name: gmail.com
Address: 64.233.161.83
Name: gmail.com
Address: 74.125.79.83
Name: gmail.com
Address: 209.85.171.83
################################################
mail.google.com canonical name = googlemail.l.google.com.
Name: googlemail.l.google.com
Address: 209.85.153.83
#################################################

So I made four IP addr lookups... www.google.com, google.com, mail.google.com, gmail.com

For a n00b, www.google.com and google.com are the same... aren't they... they dont make a diff when put in a browser ;). So are mail.google.com and gmail.com!

But in fact the above results show that something peculiar is going on!

This is what actually happens for finding the ultimate IP address corresponding web addr. Suppose I put cse.iitkgp.ernet.in and try to find the IP address... my computer will contact the "in" Domain Name Server which will have all entries which end with .in. Eg: ernet.in, gov.in etc.

As our target URL has a ernet.in we'll get the IP address of the ernet.in domain.
###########################################
Non-authoritative answer:
Name: ernet.in
Address: 202.41.97.64
###########################################

The DNS( Domain Name Server ) of ernet.in will have all entries of URL's which end in ernet.in.. eg: iitkgp.ernet.in BUT NOT cse.iitkgp.ernet.in because it is two domains deeper!

So we goto: iitkgp.ernet.in

###########################################
Name: iitkgp.ernet.in
Address: 144.16.192.55
###########################################

Then we'll goto cse.iitkgp.ernet.in

###########################################
Name: cse.iitkgp.ernet.in
Address: 144.16.192.57
###########################################

This is the order of the traversal... the IP's are just to tell that the long names are not just a conincidence... suppose you have a domain myspace.com anything preceding it will be your domain and you'll decide who owns it or not! So a URL like user1.myspace.com will be owned by myspace.com, and user11.user1.myspace.com by user1... if user1 has bought the full domain( there are some caveats here ).

This explains the difference b/w google.com and www.google.com. google.com is under the DNS servers of com and www.google.com under DNS of google.com! It's not a compulsion that all sites which have a website start with www, it's just a standard... I am not sure how Firefox guesses if www is to be prepended but all that should be doing would be nothing more than mere manipulation!

Like DNS translate URL's they also translate MRL's . There's a specific entry in the DNS telling who handles the mail for a particular domain... eg gmail.com :

##############################################
gmail.com mail exchanger = 30 alt3.gmail-smtp-in.l.google.com.
gmail.com mail exchanger = 40 alt4.gmail-smtp-in.l.google.com.
gmail.com mail exchanger = 5 gmail-smtp-in.l.google.com.
gmail.com mail exchanger = 10 alt1.gmail-smtp-in.l.google.com.
gmail.com mail exchanger = 20 alt2.gmail-smtp-in.l.google.com.
##############################################

A domain might have many [M]ail [E]xchanger records to signify that if one goes down... other picks up the mantle.

The above description is not by any means theoretically perfect or practically sound, but it does give an idea about how the Internet is one big database... one domain contains the information for other domains beneath it in the hierarchy! The experience of setting up a Mailserver has enlightened me about the Internet structure of my institute... and as it is one of those "restricted" and "secure" networks which is handled in a very careful manner, working my way out with the ISP was not an easy task at all... my mailinglist server is up and running... you might catch a glimpse of the web interface at:

http://maillist-cse.iitkgp.ernet.in/cgi-bin/mailman/listinfo/

Suggestions or accolades on mailing list, please do comment[ i am looking for a content filters, in case you have an idea]!

Well the second thing on which I've been on a high is the website I've been developing with one of my "brilliant" friends... we've worked most of the stuff out... you might catch a glimpse of the
same at:

http://maillist-cse.iitkgp.ernet.in/kgp/

The URL's might not work properly, but I'll fix them by time you visit the link.... do have a look :)!




Saturday, May 16, 2009

Knock Knock...... it's the mailman!!

If you had a brush through my last post, you would have noticed that there are a lot of things I have been doing around. Though, being practical one can easily realise that doing all of that simultaneously is, GROSS! You just can't do all of that....... if you can, then most invited to do this post!

I took up setting up the Mailing list server as my first task. Lemme tell you something about what it is all about... all you guys interested abt techie talks, here we go:-

Mailman is a mailing list manager, well all of you must have heard of Google Groups... where you can post common mails on different threads. Mailing list is the more generic version of Google Groups, generally a more crude and uneasy interface. Though it is much more elegent in the terms that you can have MUCH more control over the people who post, how they post, setting up spam-filters, blocking out open relays and all sort of that crap.

I have done quite a bit of fiddling with this tool and have a copy of it running safe and sound on a local server. I used Postfix as the Mail Server( MTA ). There's a request for a global IP to be assigned to me so that I can test my postfix installation with the more common Gmail, Yahoo or Rediff servers on the NET.

It's more of a legacy that will be left behind, the main purpose for scripting this kind of server was to maintain a archive of all discussions that might have taken place somewhere on some topic. It is generally found that later these discussions can be helpful... maybe in some research or someone interested in exploring!

Let's hope i can finish it up ASAP :D!

The second thing that I have dived into is Django.... sincerely speaking it roxx! You cannot get enough, and when I had a completely working site with a Forum, Blog, Code Post Space and generic featues like Login/Sign Up..... I was taken aback. Well Sumit has been quite a handful... having done all the CSS and templates part he's been the guy to watch out for.

The MaximumEntropy Part........ ummm... havent really got into that much though Rohit has been pretty upbeat with it.... but i'll get to it once I finish the Mailing List business.

Chao :)

Friday, May 8, 2009

Maximum Entropy

The previous post had a nice time sitting at the top, many factors like End Semester, then pressure to get a project and the society work have lead to a lag in the blog roll! Let's let it roll :D

These few weeks, mabye 1 or 2, have been pretty random in terms of the activities I have done. Ranging for complete fart to some real research mathematics. But yeah I am not sure how things will converge till the month's end when I plan to leave Kgp and join my frnzz back home.

I'll take you through a detour of the activities I pursued during these few days, not chronologically but logically :P

1. Well the first thing that I always had in mind was to do something in Web development. I've been pretty much scared by it due to lack of information and having done no server programming! Having your own society and working for it is turning to be a cool detour. But as you might guess web was never a single handed task... you need to design the backend, the fu**** html code and ofcourse use a connecting interface like php!

Cut the crap pple, who does all the suff nowadays, and being a vigilant open source follower I had heard about a Python web Framework called django( www.djangoproject.com ). It's a MVC( Model View Controller ) type of architecture. MVC is a fancy Jargon which imposes a clean and modular way to build applications. In our case the Database( Model ), Html( View ) and the logic( Control ) part are force seperated from each other.

The coolest thing about Django -> you never need to see database programming<- totally :D. And the hottest thing... the admin interface is already there, a template good enough to populate your blogs or file upload lists. Of course, programmers are most reluctant to build cool admin interfaces for themselves :P, you cant have your cake and eat it too. Django comes to your rescue and gives u a default interface!


Django Admin Interface( database layer developed my me )
I am strongly going to use this framework for the future development of the site, python is the future and anything that flows with it becomes gold!


2. Voila I started poetry again, well this is a very unlikely part of me, but I do write some very gross poetry! I wont go into the details because poets have long and tragedic detours... anyways. So I have started again and thats what counts... though have written only one, I hope to gain pace as time progress... it's tough to get solace in hot and humid Kgp :P

3. Literature again, I am scoring pretty high ;), Dan Brown! Yes the master plotter is back with all his wits and enthralling display of writting skills. I have got hands over the "not" so celebrated book.... Digital Fortress... having completed 90% till date I hope to gobble the remaining part in nick of time. But he totally rox ;).

4. Mailing list and Admin work: If you have been a part of a google group or a "mailing list" to be more professional, you might have observed the simplicity of idea but the great utility. Well some of the department seniors had suggested to establish a local archive of mails and discussions via a mailing list server. I am onto it right now and can be found sitting in my cabin in the research lab of CSE department ;) ( Seriously pple ! ). Havent actually got a great hint of how exactly I would be doing it, but challenges is what I think are common and there's nothing you can do avoid them... so just live with them.... hehe...

But tweaking with the Dns and understanding the priciples behind the "Firewalls", that, so often stop breach of malicious code is very enlightening! Kudos to CSE deptt for being supportive( so far ) :D

5. Last but not the least... the reason I am rubbing my Ass on 45 deg celcius and 90% humidity. God yes a dammed project. Comming to the domain, it is in the field of Natural Language Processing. The work is pretty straight and I feel it'll turn out to be very interesting to implement the ideas. The best thing is that we've got a target and that too short termed. This helps up to see the direction and gain motivation.

But why did I name this post "Maximum Entropy". Interesting enough the project on NLP ( Nat Lang Procseeing ) is aimed on working on a method of modelling called MaxEnt( Maximum entropy Modelling ). And a brief definiton of the same will enlighten the reason for this post being named so :)


"When trying to model an environment, try to take all factors into account but assume nothing about what you are not sure. Thus you maximize the entropy, or freedom, of the system. Such a model is perfect as it'll never give strong and incorrect result. It might refuse to give a affirmative answer, but never an incorrect answer"

Well in my article I think I didnt concentrate on any one topic... rather jumped and bounced over Literature, Web Devel, Mailservers, Poetry and Mathematics! Thus gaining maximum entropy :)

Saturday, April 11, 2009

The Free Software Foundation and Open Source Initiative

Histories have come and gone by, we never stay to remember them, 'cause there's lot more to do, than to remember the chronology of our descend. But what we do remember is our drawbacks, own mistakes... whether it be 10minutes back or 10 decades old! I don't wish to impose any school of thought through this post, what I do intend, is to put up a comprehensive view of what the software movement has been in the for out IT industry what it is was and what promises it holds. Who all are the think tanks and what do they offer. I wish you to keep an open mind through this detour.....

It was back 4-5 decades down the line, when a MIT researcher was fed up with the proprietary licences that he had to manage in order to develop a new concept. The problem he had to face is that, most of his time he was concerned of the budget overruns rather than coding standards ;).

His name, as many of you would have guessed, was Richard Stallman, the father of Free Software and family head of Free Software Foundation! He had the novel idea of sharing....

"You are not humane if you cheat with your neighbours.....",

were his common words.

He started the much needed Free Software Foundation, which was NOT an organization or license but a movement, simply a mass movement.





FREE SOFTWARE FOUNDATION

Thought the flow of events are too long to discuss I wish to tell you how Operating Systems evolved and eloped:

1. I dont remember the first seeds of operating systems but, System V, developed by Kerningham and Ritchie was one the first and full fledged OS developed. They developed it on a very meek m/c.

2. Following System V, BSD( Berkeley Software Distribution ) also started knitting their own Operating System. Finally there was UNIX which was a development version of System V.

3. The UNIX operating system was becoming pretty famous, but the problem being, the source was not open to people.

This is what led to Stallman's thinking of equality, freedom to code and the Free Software Foundation. Influenced by the efficiency of UNIX he sat down to write the whole Operating System( he left the Kernel for the end ) on his own. This can be considered the very root of Open Source Community. Not surprisingly people joined him on his detour towards a new world where there was no owner but contributors galore.

Stallman remarks that he was amazed to see the pace at which patches were included into the system and he was delighted that this methodology worked. He named this Operating System as GNU - GNU Not Unix. But why such a name?? As GNU was much more like UNIX but it had a different philosophy all together, he wanted people to know that there's something different from UNIX, and "that" something is the sole reason GNU is being developed. Hence the Recursive Acronym.

When Stallman had finished the GNU set of utilities, he sat down to write the kernel that would make the system complete( right now GNU utils were made on UNIX ). Interesting development took place at this step, a Finland Phd student was writing a kernel on the very same lines and amazingly he had completed it before Stallman could do it! He was none other than Linus Torvalds.

Linus himself thought on the lines of freedom to source and mild licensing. The GNU took Linus's kernel and attached their patch of utilities. By the while, Linus maned his kernel Linux as it meant Linus+Unix=Linux. The duo of Gnu and Linux is till date famous as GNU/LINUX. Here's a pic of the same.



The Linux Tux flying under the Gnu Bull, Gnu/Linux duo :D

The Open Source Initiative



OSI Trademark Logo

The open source initiative to me was more of a "Commercial Move" aimed at popularising the "Openness of softwares". The benifit? Well, by the name of Free Software Foundation it seemed like they were talking of the "Free Beer" more than "Free Speech"! There were not much of industry involvement or support to the FSF, simply because they didnt see any profitable marketing strategy and the FSF philosophy was more of a NGO... heh.

Open Source Foundation took the task of commercialising the very basics of FSF, though obviously, with some changes. I would not jump to the theoretical aspects, rather would take an example to illustrate the same.

UBUNTU

Known as the household face of "Linux". Here are some facts that'll spill the can of beans, right in front of you.... hmmm. So the first question is, what is Ubuntu, Open Source or Free Software, well it's an Open Source product. Free Software would not have allowed to have any proprietary software support, but Ubuntu has repositories which openly support binary only softwares. Take for example the RealPlayer for Linux, Flashplayer Plugins and lots more! If Stallman was to endorse Ubuntu, he simply would have stripped all those binary only softs.


But dear frnzz, if Open Source would not have been there... Ubuntu wouldnt have been whats it's today... the commercial benifits it claims as having openess to all... whether Proprietary of Free software, is what fills up it's cashbanks. But on the same hand, whatever activity or project it takes up are per Free Software standards.

Undoubtedly.... Open Source has had a practical approach to survive in the market! Some people have called Free Software Foundation as being communal( Communal -- Forcing Some Act ), I personally feel.... having a rigid and unbending view has been their problem.... that is why they never became a reality, remained a mere movement! Open Source has taken the steps in the right direction... and you might find Stallman screaming around.... telling peopple that they are DIFFERENT from OSI. For the facts GNU Operating System is perhaps one of the few "Free Software Project" under the Operating Sys catagory, you might google others, I dont really care.

Open Source or FSF... why should I do it ??

Many of my friends and a new budding programmer asked me recently. Whats the initiative to work in Open Source after all.

I dont want to convince anybody, I work in open source because I love to code, and Open Source projects is where I have no restrictions to learn, read, code and contribute. I love to help my neighbours and if that needs some initiative, you better start preparing for a English Vocab paper as Microsoft have changed strategies for new employees :)

Conclusion

The talk is highly shortened, partly because I've my exams up sleeves and because the History is never easy to interpret. But my feeling about the whole OSI and FSF thingy lies on the commoness of ideas and NOT on the differences. Where FSF is an ideology, Open Source is it's realization and in real time dynamics you need to have optimization( i sound an Engineer here ;) ).

Whats important for me is, if the source is made open... i can use it for modifying... I can code because I love it... I have access to the most intricately written media players, chat clients and his highness.... Kernel! I dont care a damn of what people make out of differences b/w FSF and OSI. I am with the concurrunt views.

May the Source be With you!

Thursday, April 9, 2009

ORKUT HACKED.... JOTIKA LINKS, PORTUGUESE LINKS...

Well it has been a fascinating overnite having tryst with the UGLY security of Orkut and the way it manages Cookies. If you are having your About me changed to Junk/Vulgar links of Jotika Sex Chat or Portugese Sex Chats... then this the place you are looking for to secure. I'll tell you how they are hacking the account so that you may understand the solution with affirmation....

HACK

Cookies are basically stored on your computer when you log onto Orkut. But why? Suppose you are navigating from one page to another, orkut has no way to tell if that navigation is secure until and unless you give it the password. But giving a password everytime will be cumbersome. So to avoid that Orkut saves a certificate on your computer, in the form of a cookie telling that if a request has the cookie information attached( as it is a local information only the owner has it right now ) then the navigation is secure.

Are cookies permanent? NO

Cookies have a lifetime which is defaulted to Session, i.e. as soon as you logout your cookie is destroyed. Orkut specifically has Session Lifetime.

So when you log in again a new cookie is assigned... have a screenshot of the cookie information...



How are they hacking it... if you click a malicious link and you have the cookie stored at that time... you are done!

The cookies is sent over the net to the hacker, he edits his own cookie with your information... as long as you dont logout the cookie holds goooood and you will be raped all angles :P.The links they are keeping on hacked profiles are malicious so if u click them u'll compromise badly.

SAFE BROWSING

Those who didnt get hacked, dont click any malicious link or hacked profile links! A higher precaution can be to logout after each use and not keep the account idle for exploits...

Those who got hacked.... do the following

1. Change the pic, aboutme, your sex, orientation and wat not :P
2. Remove the malicious communities from the account... see for malicious friends!
3. Logout immidiately..... actually as u'll goto the commmunity to remove it... they'll get your cookie! It takes time to process it... 5-10 min atleast.... make your changes and logout... the cookie will be destroyed.
4. Obviously the "Non hacked users" rules apply :P

Happy Orkutting, Chirkutting ;)