This idea of writing a Java class to a particular spec and then having them compete directly against eachother sounds pretty similar to the idea behind Robocode which has been discussed here before.
I suppose that given Robocode is an IBM project and IBM's involvement in the ACM contest this isn't too suprising.
I wonder if there was any kind of graphical client to go with this like there is in Robocode, and if so if it will be available? Watching a little demolition derby with cars of my own creation sounds like alot of fun.
I once received a spam to buy some Viagra (I know, not exactly uncommon).
At the time I was going through a major anti-spam kick, where I would thorougly investigate each piece of spam, contact the appropriate ISPs (often by phone), etc (I've since given up on this effort since most ISPs simply didn't care).
Anyways, this one particular piece of SPAM had an order form built right in to the email, which submitted the details (unencrypted of course) to a CGI on the spammers "server" (connected via some throw-away dial-up account).
As part of my "investigation", I just happened to cut and paste the URL of the CGI into my browser, but took off the filename (that is, I went to their cgi-bin directory). I couldn't believe it, but the cgi-bin directory was open to the world, including the flat files which were storing the user's names, email addresses, home addresses, and credit card information, etc.
I refreshed the files once in a while over the next several hours, and just watched the list of orders build and build and build. I'd say in one evening this guy made several hundred dollars in profit. Multiply that by the number of days in the year, subtract the amount that they spent to send the email (nothing or almost nothing) and you've got your answer. Spammers make money. In some cases, lots and lots of money.
Definitely set theory, how about crypto?
on
What Math do You Use?
·
· Score: 4, Insightful
Set theory is extremely important in "the real world", especially for developers who write in any kind of query language (and really, what developer hasn't had to do that at some point, think SQL, EJB-QL, etc).
If every developer had a formal background in set theory, I wouldn't see quite so many bad SELECT statements, misuse of joins, etc. Bad queries can be a huge bottleneck in a DB drive application.
If I had to pick something else, how about a brief (but mathematical) introduction to cryptography? Public key schemes are easy to learn, and very interesting to the average computer science student. We covered this in one of my first math courses in University, and it interested me enough that I went back to take the dedicated crypto course in later years. The knowledge I gained there has been very useful in settig up servers, evaluating products with crypto, etc.
Eclipse can do conditional breakpoints (Right click on a Breakpoint and select "Breakpoint Properties..." from the popup. Options include Hit Count, Thread selection and custom conditions).
Eclipse also supports Hot Swap if the JDK you're using supports it.
A while back I ran into a rather stupid bug in RedHat. After some debugging I figured out the problem was due to a "description" field missing from one of the config files (/boot/module-info).
At the top of this file in the "comments" was a brief note about the format that this file was supposed to follow. According to this, there should never have been an entry without a description field. The code for one of the GUI programs ASS-U-MEd this would be the case, didn't do any checking and of course crapped out when it found a malformed entry (someone obviously hadn't read the format info in the comments when the made changes).
Now of course the code should have been robust enough to handle such and error, but ideally there would have been some checking of the config file to determine whether the file actually conformed to the listed format rules before it was sent out into production.
These config files are where XML's strengths can be quite useful. If this file had a formal schema definition and was created in XML, it would be quite easy to check this config file for correctness (syntactical at least) as part of the build process. The code which reads these files could be changed to use a simple XML parser to read through it, or hell you could even write an XSLT transform to turn it into the "non-XML" format (i.e. use the XML for developing the file only) and not have to change any of the existing code that reads that file!
There's been a big push towards XML configuration files in some segments of the industry (the Java J2EE camp for example). I for one hope this trend will continue.
It was announced on the Toronto Linux Users Group as an open talk, so anyone is free to attend AFAIK.
n ux.tolug/865/match=young
See here for details including where it's happening, etc: http://article.gmane.org/gmane.org.user-groups.li
CTRL-G
This idea of writing a Java class to a particular spec and then having them compete directly against eachother sounds pretty similar to the idea behind Robocode which has been discussed here before.
I suppose that given Robocode is an IBM project and IBM's involvement in the ACM contest this isn't too suprising.
I wonder if there was any kind of graphical client to go with this like there is in Robocode, and if so if it will be available? Watching a little demolition derby with cars of my own creation sounds like alot of fun.
At the time I was going through a major anti-spam kick, where I would thorougly investigate each piece of spam, contact the appropriate ISPs (often by phone), etc (I've since given up on this effort since most ISPs simply didn't care).
Anyways, this one particular piece of SPAM had an order form built right in to the email, which submitted the details (unencrypted of course) to a CGI on the spammers "server" (connected via some throw-away dial-up account).
As part of my "investigation", I just happened to cut and paste the URL of the CGI into my browser, but took off the filename (that is, I went to their cgi-bin directory). I couldn't believe it, but the cgi-bin directory was open to the world, including the flat files which were storing the user's names, email addresses, home addresses, and credit card information, etc.
I refreshed the files once in a while over the next several hours, and just watched the list of orders build and build and build. I'd say in one evening this guy made several hundred dollars in profit. Multiply that by the number of days in the year, subtract the amount that they spent to send the email (nothing or almost nothing) and you've got your answer. Spammers make money. In some cases, lots and lots of money.
Set theory is extremely important in "the real world", especially for developers who write in any kind of query language (and really, what developer hasn't had to do that at some point, think SQL, EJB-QL, etc).
If every developer had a formal background in set theory, I wouldn't see quite so many bad SELECT statements, misuse of joins, etc. Bad queries can be a huge bottleneck in a DB drive application.
If I had to pick something else, how about a brief (but mathematical) introduction to cryptography? Public key schemes are easy to learn, and very interesting to the average computer science student. We covered this in one of my first math courses in University, and it interested me enough that I went back to take the dedicated crypto course in later years. The knowledge I gained there has been very useful in settig up servers, evaluating products with crypto, etc.
Eclipse can do conditional breakpoints (Right click on a Breakpoint and select "Breakpoint Properties..." from the popup. Options include Hit Count, Thread selection and custom conditions). Eclipse also supports Hot Swap if the JDK you're using supports it.
So you're saying most enterprise Java apps only work on Windows? Are you on crack?
A while back I ran into a rather stupid bug in RedHat. After some debugging I figured out the problem was due to a "description" field missing from one of the config files (/boot/module-info).
At the top of this file in the "comments" was a brief note about the format that this file was supposed to follow. According to this, there should never have been an entry without a description field. The code for one of the GUI programs ASS-U-MEd this would be the case, didn't do any checking and of course crapped out when it found a malformed entry (someone obviously hadn't read the format info in the comments when the made changes).
Now of course the code should have been robust enough to handle such and error, but ideally there would have been some checking of the config file to determine whether the file actually conformed to the listed format rules before it was sent out into production.
These config files are where XML's strengths can be quite useful. If this file had a formal schema definition and was created in XML, it would be quite easy to check this config file for correctness (syntactical at least) as part of the build process. The code which reads these files could be changed to use a simple XML parser to read through it, or hell you could even write an XSLT transform to turn it into the "non-XML" format (i.e. use the XML for developing the file only) and not have to change any of the existing code that reads that file!
There's been a big push towards XML configuration files in some segments of the industry (the Java J2EE camp for example). I for one hope this trend will continue.