Neither ayttm nor everybuddy are being actively developed, though there are users that submit patches now and then. We're looking for people to take over some of the development responsibility on ayttm, so if you're interested, come on over to the mailing list and do something.
When I started school (English medium) in Bombay (India), we did English throughout, but also learnt Hindi (a national language) and Marathi (regional language) from grade 1 up. It was basically story telling at grade 1, and then learning the alphabet and kindergarten stuff at grade 2.
At grade 8 many of us switched to French, dropping Marathi.
For the lug at least, it was a chance to meet and exchange GPG keys, and of course get a lot of beer down.
I was glad I was there to meet ilug-delhi, and yes, I did think most of the conference was just marketing, but I got to meet an old female friend from college, who prolly wouldn't have turned up at a technical conference:P
ayttm isn't so much a fork of everybuddy - it *is* everybuddy. What is now called everybuddy (eb-lite) is a complete rewrite. Ayttm is around to provide users with a workable client until eb-lite matures.
Hmm, I always thought that Trillian used code from gaim or Meredydd's libmsn2.
I've heard that the gaim devels did help them out in moving to the new Yahoo protocol when the old one stopped working.
There's also proteus that uses code from GPLed projects, and does comply with the GPL (by releasing that portionunder the GPL). I find it odd that these guys use GPLed code, but never acknowledge the original authors.
After receiving a claim of infringement, SourceForge.net will process and
investigate notices of alleged infringement and will take appropriate
actions under the DMCA and other applicable intellectual property laws.
Upon receipt of notices complying or substantially complying with the
DMCA, SourceForge.net will act expeditiously to remove or disable access
to any material claimed to be infringing or claimed to be the subject of
infringing activity, and will act expeditiously to remove or disable
access to any reference or link to material or activity that is claimed to
be infringing. SourceForge.net will take reasonable steps promptly to
notify the subscriber that it has removed or disabled access to such
material.
I am not a lawyer, but I get touchy when people mention the DMCA. Maybe
someone would like to clarify what this means.
Well, IIRC, the ARPANET was created to avoid just such a problem. A
world-wide network of computers would be able to withstand an attack that
would wipe out a local area.
We do a lot more - comment stripping too. We also need to catch people who copy by looking at someone else's code and noting it down - whitespace won't come in there.
It isn't generally implemented for trivial problems. If the assignment
were to write an implementation for bubble sort, chances are everyone
would have the same - maybe different variable names, but otherwise the
same code.
Ok, check for exact match: diff source1.c source2.c
great, I just wrote a program to check for exact matches in source code,
and it took me three seconds. Maybe I should apply for a patent for my
ingenious approach (maybe I'd get it!!)
At my organisation, (in India) we've been developing something like this for
quite some time for our internal tests.
While most of the work isn't (and probably won't be) publicly released, we
can look at a systematic approach to building a better detector.
run indent on all source files to standardise white space usage: indent -i8 -kr
Remove excessive white space within statements (students tend to
add extra white space: sed -e 's,\([^ ^I]\)[ ^I]\+,\1,g'
while you're at it, remove blank lines too: sed -e 'g/^[ ^I]\+$/d'
Remove repeated lines, or lines that match i=i;
Run diff/cmp on the files and check the %ange difference
You may also want to first strip all #include <> statements (not
#include ""), and run the code through the C preprocessor first to take
care of #define, and conditional compilation
There's more obviously that I'm not sharing with you. These are the
basics that anyone could figure out in a few minutes - not years.
Rather than connect my lights to my speaker, I
connected a tubelight starter to a bunch of 230V
bulbs, and kept the starter in front of my
woofer.
The starter naturally causes strobing through
thermostatic effect, but the speaker caused extra
vibrations, which made the contacts touch, and
separate with the beat. The result, lights to
the music while the music was on, and plain old
blinking while the music was off.
Just had to be careful that no one touched those
bare 230V wires.
Oh, yeah, encased the whole thing my lego police
station.
Well, the 16,600 volts is really the *difference*
in potential between the two points of his body
in contact with the electrodes. Unlike kinetic
energy, which is absolute, and dependent wholly
on the velocity of the energetic body, potential
energy is relative - to what I'm not too sure.
Of course, there is also the law of conservation
of energy, and one often notices that a large
potential differential when applied to a body of
human origin tends to induce significant amounts
of kinetic energy, often manifesting itself into
vibrational energy.
Current in the end, is the rate of flow of
charge, and charge as we all know, is measured in
Coulombs, or electron Volts.
Well, we were taught comp sci in school. We started in the 8th grade (in 1988). The first three months were complete history, starting with the ABACUS, to the slide rule, napier's bones, babbage, gottfried von liebnitz, lady ada lovelace, and the rest. We ended up at the ENIAC, EDSAC and the UNIVAC, and then moved on to the binary number system for another two weeks - conversion, addition, subtraction, multiplication, floating points, etc. Finally, after all that, we started programming in GW-Basic.
All that's changed now. After I left school, they changed the syllabus. CompSci was changed to Computers, and moved down to the primary section. Students started with paint brush.
Jumping forward many years, in my last year of my Master's, I took part in an inter collegiate computer quiz. The finalists were from the best engineering colleges in Mumbai. They were all stumped on one question - "Who wrote the art of computer programming". Some thought it was a movie!! Suffice it to say, my team of two won that quiz through the sheer ineptness of the competition.
These were all good students, from good colleges, studying computer engineering. I'd think that they'd have read Knuth sometime during those four years, but most hadn't even heard of him.
I now teach several courses, and also give lectures for the ACM. I always make it a point to throw in a bit of history into all my lectures. While talking about grep and sed, I mention how they grew out of ed, and why parens have to be escaped in regexes.
The problem seems to be that the people who set the course don't care about history, and the students who study only care about getting out, so what's past is lost.
I think you have to ask the question that when Linus releases a new kernel, who is that aimed at?
While thinking about who a kernel is aimed at, we've really got to consider our role as users of the latest kernels.
On any project, regardless of size, the developers are often too close to the code to test it completely. They know too well the right thing to do. They are, in effect, well programmed users for the system that they are building, and this makes them bad testers. This is why so many companies have quality assurance departments that never interect with developers except through bug reports.
In this Free/Open community, where the entire user base is the `company', it suddenly becoms apparent, that we, the users of bleeding edge kernels are this qa department. It is we who do the final testing, it is we who write the reviews for people who stick to old kernels until they get these reviews.
Some may argue that there is already an unstable branch in which to do these things. Sure, but there are other testers for those. Often those testers aren't suitable to test stable kernels because they are now too close to the bugs that they first reported. I hope I'm making sense here.
Anyway, this is one instance where this huge qa team found a bug real fast, got it back to the developers, and they fixed/undid it in equally quick time.
Well, our main server (apache) was hit 4695 times since 0000hrs 19 Sept IST (+530), with 1974 hits on the 18th. On the whole, attacks came from 483 unique IPs. I used this:
to get that number. The grep got a few other suspicious (for apache) hits, that I did not count (two actually).
I've put up the whole list of IPs that tried to hit us at http://www.ncst.ernet.in/~philip/nimda.infected This list may grow as things change. Currently IPs from all classes of networks, with very different network numbers (12, 24, 35, 61, 63, 65, 66, 130, 137, 144, 146, 147, 158, 164, 168, 193, 194, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 216, 217)
I've also got a not so large number of hits for/_vti_bin/shtml.dll/_vti_rpc and/_vti_bin/shtml.exe/_vti_rpc. These have been coming through as far back as my logs record (start of September).
In short, what it says is that the US was hit simply because their leaders are too arrogant to have considered this possible. They aren't attacking the US, their attacking their arrogance. The US shouts lout "We're the best, we're the smartest", and that tends to piss off some people. They may be within the US, or outside, but they aren't really attacking the US.
This definitely had a good brain behind it. How else could it have been so perfectly synchronised, and yet no evidence be available afterwards. Why is it that not a single US media outlet was affected? How is it that the CIA had no idea that this was even possible. How come Air traffic controllers had no idea that the planes were going the wrong way. How come they didn't notice the proximity to the WTC (surely a no-fly-zone).
I'd add a few of my favourites, that are generally language independent:
The Elements of Programming Style - Kernighan & Plaugher
The Practice of Programming - Kernighan & Pike
Programming Pearls and More Programming Pearls - Jon Bentley
The Cuckoo's Egg - Clifford Stoll
While the first three are specifically about programming, but in a
language independent sort of way (examples in C, and awk), the fourth is
interesting as a beginner's/lay man's point of view to computer
security.
These, along with Don Knuth and Fred Brooks, have been around for ages,
and are still relevant. They just won't go obsolete.
Finally, I'd add Mastering Regular Expressions by Jeff Friedl to the list,
because let's face it, life without regexes is boring.
Here are the facts from my point of view, working as a software professional in Mumbai, India.
I started out as a free lancer, and got paid Rs.100
an hour (about $2.15). I wish I could have earned
$50 an hour, but that would have left my employer
bankrupt.
The private sector pays anywhere between Rs10000 to Rs30000 per month
which works out to about $215 to $650 per month (yes, those are hundreds, not thousands).
In the government sector, the pay is fixed and one gets regular increments. The base salary is Rs8275, with allowances, it goes to around Rs.13000. Thats under $300 per month.
As far as taxes go, it varies from 10% to 30%, though, at this rate of income, I'd probably have to pay nearer to 30%
Transport: Travelling by train is easy, if you're a seasoned traveller. It costs something like Rs.8 ($0.17) (per day if one gets a season ticket). (This is the rate on the most common route. Longer routes cost more).
If one prefers to take the bus, it would work out to more than twice that amount, but mainly because there are no season bus tickets. Cabs and autorickshaws (three wheeled, three seaters) are more expensive.
Most companies will pay you a travel allowance though, provided you can prove that you spent what you claim you did.
Some companies also have their own transport that picks you up from pretty close to your home, and drops you back there in the evenings.
Food: Again, compared to other places in the world, food in India is really cheap. A good south Indian dosa would cost between 10 to 14 rupees, while a full lunch (thali) would cost about Rs.21-25.
Oh, and London doesn't have good curries, Mumbai does.
Healthcare: We Indians don't fall ill. And if by chance, someone does cast a black eye on you, grandma has her home remedies ready.
If you do go to a doc, it really depends on whether he caters to the rich or the poor. Prices fluctuate wildy. Of course, if you took your daily Chyawanprash, you'd never need to see a doctor.
Living: Depends on where you want to live. If you work for the government, they'll provide accommodation. Some private companies do too. I can't talk about the cost of living, because I've always lived at home. Still, the general rule is that South Mumbai is expensive, while the Northern suburbs are cheaper. Note: No matter where you live, it's easier to get to work if you work in the north... you don't need to hang out of the train.
All together, I'd say we Indians get a better deal coming to work in the US, than an American would get if he were to come work in India.
Shouldn't we be getting ready for an intergalactic network? After all,/usr/src/linux/net/ipv4/tcp_timer.c has this to say: * PAWS allows us longer timeouts and large windows, so once * implemented ftp to mars will work nicely. We will have to fix * the 120 second clamps though!
The API docs are in there at least.
you ought to write this up as a template for the nonsense generator (search freshmeat).
Neither ayttm nor everybuddy are being actively developed, though there are users that submit patches now and then. We're looking for people to take over some of the development responsibility on ayttm, so if you're interested, come on over to the mailing list and do something.
There's a lot to be done.
When I started school (English medium) in Bombay (India), we did English throughout, but also learnt Hindi (a national language) and Marathi (regional language) from grade 1 up. It was basically story telling at grade 1, and then learning the alphabet and kindergarten stuff at grade 2.
At grade 8 many of us switched to French, dropping Marathi.
For the lug at least, it was a chance to meet and exchange GPG keys, and of course get a lot of beer down.
:P
I was glad I was there to meet ilug-delhi, and yes, I did think most of the conference was just marketing, but I got to meet an old female friend from college, who prolly wouldn't have turned up at a technical conference
remind me to finish my article on the history of universal instant messengers.
ayttm isn't so much a fork of everybuddy - it *is* everybuddy. What is now called everybuddy (eb-lite) is a complete rewrite. Ayttm is around to provide users with a workable client until eb-lite matures.
ayttm has had video support (in msn and yahoo) for a very long time now. Voice support for yahoo has been available in pyVoice Chat.
The main stumbling block in implementing these things has not been technical. It's been the patents that cover the voice and video formats used.
Hmm, I always thought that Trillian used code from gaim or Meredydd's libmsn2.
I've heard that the gaim devels did help them out in moving to the new Yahoo protocol when the old one stopped working.
There's also proteus that uses code from GPLed projects, and does comply with the GPL (by releasing that portion under the GPL). I find it odd that these guys use GPLed code, but never acknowledge the original authors.
Well, IIRC, the ARPANET was created to avoid just such a problem. A
world-wide network of computers would be able to withstand an attack that
would wipe out a local area.
We do a lot more - comment stripping too. We also need to catch people who copy by looking at someone else's code and noting it down - whitespace won't come in there.
It's for students. We run training programmes.
It isn't generally implemented for trivial problems. If the assignment
were to write an implementation for bubble sort, chances are everyone
would have the same - maybe different variable names, but otherwise the
same code.
Ok, check for exact match: diff source1.c source2.c
great, I just wrote a program to check for exact matches in source code, and it took me three seconds. Maybe I should apply for a patent for my ingenious approach (maybe I'd get it!!)
At my organisation, (in India) we've been developing something like this for quite some time for our internal tests.
While most of the work isn't (and probably won't be) publicly released, we can look at a systematic approach to building a better detector.
indent -i8 -kr
sed -e 's,\([^ ^I]\)[ ^I]\+,\1
sed -e 'g/^[ ^I]\+$/d'
i=i;
You may also want to first strip all #include <> statements (not #include ""), and run the code through the C preprocessor first to take care of #define, and conditional compilation
There's more obviously that I'm not sharing with you. These are the basics that anyone could figure out in a few minutes - not years.
Rather than connect my lights to my speaker, I connected a tubelight starter to a bunch of 230V bulbs, and kept the starter in front of my woofer.
The starter naturally causes strobing through thermostatic effect, but the speaker caused extra vibrations, which made the contacts touch, and separate with the beat. The result, lights to the music while the music was on, and plain old blinking while the music was off.
Just had to be careful that no one touched those bare 230V wires.
Oh, yeah, encased the whole thing my lego police station.
P
Well, the 16,600 volts is really the *difference* in potential between the two points of his body in contact with the electrodes. Unlike kinetic energy, which is absolute, and dependent wholly on the velocity of the energetic body, potential energy is relative - to what I'm not too sure.
Of course, there is also the law of conservation of energy, and one often notices that a large potential differential when applied to a body of human origin tends to induce significant amounts of kinetic energy, often manifesting itself into vibrational energy.
Current in the end, is the rate of flow of charge, and charge as we all know, is measured in Coulombs, or electron Volts.
P
Well, we were taught comp sci in school. We started in the 8th grade (in 1988). The first three months were complete history, starting with the ABACUS, to the slide rule, napier's bones, babbage, gottfried von liebnitz, lady ada lovelace, and the rest. We ended up at the ENIAC, EDSAC and the UNIVAC, and then moved on to the binary number system for another two weeks - conversion, addition, subtraction, multiplication, floating points, etc. Finally, after all that, we started programming in GW-Basic.
All that's changed now. After I left school, they changed the syllabus. CompSci was changed to Computers, and moved down to the primary section. Students started with paint brush.
Jumping forward many years, in my last year of my Master's, I took part in an inter collegiate computer quiz. The finalists were from the best engineering colleges in Mumbai. They were all stumped on one question - "Who wrote the art of computer programming". Some thought it was a movie!! Suffice it to say, my team of two won that quiz through the sheer ineptness of the competition.
These were all good students, from good colleges, studying computer engineering. I'd think that they'd have read Knuth sometime during those four years, but most hadn't even heard of him.
I now teach several courses, and also give lectures for the ACM. I always make it a point to throw in a bit of history into all my lectures. While talking about grep and sed, I mention how they grew out of ed, and why parens have to be escaped in regexes.
The problem seems to be that the people who set the course don't care about history, and the students who study only care about getting out, so what's past is lost.
Philip
I think you have to ask the question that when Linus releases a new kernel, who is that aimed at?
While thinking about who a kernel is aimed at, we've really got to consider our role as users of the latest kernels.
On any project, regardless of size, the developers are often too close to the code to test it completely. They know too well the right thing to do. They are, in effect, well programmed users for the system that they are building, and this makes them bad testers. This is why so many companies have quality assurance departments that never interect with developers except through bug reports.
In this Free/Open community, where the entire user base is the `company', it suddenly becoms apparent, that we, the users of bleeding edge kernels are this qa department. It is we who do the final testing, it is we who write the reviews for people who stick to old kernels until they get these reviews.
Some may argue that there is already an unstable branch in which to do these things. Sure, but there are other testers for those. Often those testers aren't suitable to test stable kernels because they are now too close to the bugs that they first reported. I hope I'm making sense here.
Anyway, this is one instance where this huge qa team found a bug real fast, got it back to the developers, and they fixed/undid it in equally quick time.
Philip
There are errors in the bz2 images on ftp.kernel.org. They do not pass the gpg verification, and are basically corrupted images. the gz images work.
Philip
Well, our main server (apache) was hit 4695 times since 0000hrs 19 Sept IST (+530), with 1974 hits on the 18th. On the whole, attacks came from 483 unique IPs. I used this:
/_vti_bin/shtml.dll/_vti_rpc and /_vti_bin/shtml.exe/_vti_rpc. These have been coming through as far back as my logs record (start of September).
cat list_of_logs | egrep "scripts|_vti_bin|_mem_bin" | cut -f1 -d" " | sort | uniq | wc -l
to get that number. The grep got a few other suspicious (for apache) hits, that I did not count (two actually).
I've put up the whole list of IPs that tried to hit us at http://www.ncst.ernet.in/~philip/nimda.infected This list may grow as things change. Currently IPs from all classes of networks, with very different network numbers (12, 24, 35, 61, 63, 65, 66, 130, 137, 144, 146, 147, 158, 164, 168, 193, 194, 199, 200, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 216, 217)
I've also got a not so large number of hits for
Philip
I'd like to point to a story at rediff.com by Reeta Sinha http://www.rediff.com/news/2001/sep/12reeta.htm
In short, what it says is that the US was hit simply because their leaders are too arrogant to have considered this possible. They aren't attacking the US, their attacking their arrogance. The US shouts lout "We're the best, we're the smartest", and that tends to piss off some people. They may be within the US, or outside, but they aren't really attacking the US.
This definitely had a good brain behind it. How else could it have been so perfectly synchronised, and yet no evidence be available afterwards. Why is it that not a single US media outlet was affected? How is it that the CIA had no idea that this was even possible. How come Air traffic controllers had no idea that the planes were going the wrong way. How come they didn't notice the proximity to the WTC (surely a no-fly-zone).
I'd add a few of my favourites, that are generally language independent:
The Elements of Programming Style - Kernighan & Plaugher
The Practice of Programming - Kernighan & Pike
Programming Pearls and More Programming Pearls - Jon Bentley
The Cuckoo's Egg - Clifford Stoll
While the first three are specifically about programming, but in a language independent sort of way (examples in C, and awk), the fourth is interesting as a beginner's/lay man's point of view to computer security.
These, along with Don Knuth and Fred Brooks, have been around for ages, and are still relevant. They just won't go obsolete.
Finally, I'd add Mastering Regular Expressions by Jeff Friedl to the list, because let's face it, life without regexes is boring.
Philip
Here are the facts from my point of view, working as a software professional in Mumbai, India.
I started out as a free lancer, and got paid Rs.100
an hour (about $2.15). I wish I could have earned
$50 an hour, but that would have left my employer
bankrupt.
The private sector pays anywhere between Rs10000 to Rs30000 per month
which works out to about $215 to $650 per month (yes, those are hundreds, not thousands).
In the government sector, the pay is fixed and one gets regular increments. The base salary is Rs8275, with allowances, it goes to around Rs.13000. Thats under $300 per month.
As far as taxes go, it varies from 10% to 30%, though, at this rate of income, I'd probably have to pay nearer to 30%
Transport: Travelling by train is easy, if you're a seasoned traveller. It costs something like Rs.8 ($0.17) (per day if one gets a season ticket). (This is the rate on the most common route. Longer routes cost more).
If one prefers to take the bus, it would work out to more than twice that amount, but mainly because there are no season bus tickets. Cabs and autorickshaws (three wheeled, three seaters) are more expensive.
Most companies will pay you a travel allowance though, provided you can prove that you spent what you claim you did.
Some companies also have their own transport that picks you up from pretty close to your home, and drops you back there in the evenings.
Food: Again, compared to other places in the world, food in India is really cheap. A good south Indian dosa would cost between 10 to 14 rupees, while a full lunch (thali) would cost about Rs.21-25.
Oh, and London doesn't have good curries, Mumbai does.
Healthcare: We Indians don't fall ill. And if by chance, someone does cast a black eye on you, grandma has her home remedies ready.
If you do go to a doc, it really depends on whether he caters to the rich or the poor. Prices fluctuate wildy. Of course, if you took your daily Chyawanprash, you'd never need to see a doctor.
Living: Depends on where you want to live. If you work for the government, they'll provide accommodation. Some private companies do too. I can't talk about the cost of living, because I've always lived at home. Still, the general rule is that South Mumbai is expensive, while the Northern suburbs are cheaper. Note: No matter where you live, it's easier to get to work if you work in the north... you don't need to hang out of the train.
All together, I'd say we Indians get a better deal coming to work in the US, than an American would get if he were to come work in India.
Shouldn't we be getting ready for an intergalactic network? After all, /usr/src/linux/net/ipv4/tcp_timer.c has this to say:
* PAWS allows us longer timeouts and large windows, so once
* implemented ftp to mars will work nicely. We will have to fix
* the 120 second clamps though!
Any comments?
Philip