Browsed by
Category: programming

My Interaction With an Aim Spambot

My Interaction With an Aim Spambot

I recently experienced a wave of nostalgia when I was contacted by an Aim spambot in AOL instant messanger. Back in 1999-2001, highschool for me, a few of my friends and I were adament AIM users. Every once in a while, one of us would give an aimbot the name of someone to initiate contact with, and wait to see what the person would have to say about it, after mentioning it in conversation or somehow bringing it up. Apparently today my screen name got picked up by an aim spambot, and the following conversation is the result. I have done a lot in software development and computing in general, and I look forward to the day when such interactions are more realistic. Please also note that “lol.. wat” is something I almost never ever say in chat.. I just thought it would be funny to say to someone I didnt know, in reply to something equally outrageous 🙂

[11:59] ProbedCoho: Ye may think I be a pirate, yarr, but the truth be that I be a proper privateer!  Yarrr!
[12:00] sanimalp: lol.. wat?
[12:00] sanimalp: oh.
[12:01] ProbedCoho: who is this?
[12:01] sanimalp: this is jon.. who is this?
[12:01] ProbedCoho: and yes
[12:02] ProbedCoho: sean
[12:02] sanimalp: hmm.. sean who?
[12:02] sanimalp: its cool i dont need to know.. i just dont know any sean’s…
[12:03] ProbedCoho: ryon
[12:03] sanimalp: hmm, well my name is jon steege. i don’t know that i know you.. but i happen to be a ninja… so that makes us mortal enemies..
[12:03] ProbedCoho: ok…
[12:04] sanimalp: how did you get this aim name?
[12:04] ProbedCoho: …what?
[12:04] sanimalp: lol..
[12:05] sanimalp: http://en.wikipedia.org/wiki/Pirates_versus_Ninjas
[12:05] ProbedCoho: i didn’t…you messaged me
[12:05] sanimalp: i did?
[12:05] sanimalp: hmm.
[12:06] sanimalp: you started with :

[11:59] ProbedCoho: Ye may think I be a pirate, yarr, but the truth be that I be a proper privateer!  Yarrr!
[12:06] ProbedCoho: yeup
[12:06] sanimalp: ok
[12:07] sanimalp: that was the initiation of the contact from my side.. i didnt send a message to you.. so if you did get a message from me.. then something fishy is going on..
[12:07] ProbedCoho: no i didn’t
[12:07] sanimalp: uh.. didnt what?
[12:08] ProbedCoho: yeah it would appear so
[12:08] sanimalp: what is 37 times 186 sean?
[12:08] ProbedCoho: huh?
[12:09] sanimalp: i was wondering if you could do the math to prove you are not an aim bot..
[12:09] sanimalp: heh
[12:09] sanimalp: cause that is always a fun test..
[12:09] sanimalp: back in the old days, there used to be aim bots.. they seem to have died out, but some were rather convincing.. they happened to really suck at math though.. its the whole turing test deal..
[12:10] ProbedCoho: how about no?
[12:10] ProbedCoho: oh ok
[12:10] sanimalp: alright. sure.
[12:10] ProbedCoho: oh ok
[12:10] ProbedCoho: gotcha
[12:12] sanimalp: nice.. you are an aim bot..
[12:13] sanimalp: sorry you failed the turing test. see you later..
[12:13] ProbedCoho: or no
[12:13] ProbedCoho: does not compute //:
[12:13] sanimalp: lol..
[12:15] ProbedCoho: what now?
[12:16] sanimalp: for(int i =0;i>-1;i++){}

Unfortunatly, I will never get the satisfaction of knowing if the bot entered an infinite loop, but it did stop replying after that! My guess is that it did not.. but I can hope.

2 hours of Video on JavaScript from Douglas Crockford

2 hours of Video on JavaScript from Douglas Crockford

I spend a lot of time doing web development in my daily life. I am employed as a software engineer, and as part of that employment, I get the opportunity to program in JavaScript from time to time. I’ll be the first to admit that I am not great at it, as the language was never formally “taught” to me. Because of this, I have found several interesting parts of the language that have caused me some problems over time. Below are several links to videos containing instruction from Douglas Crockford on the do’s and dont’s of the JavaScript language, which I found very informative, given the problem I ran into a while ago on the project I am working on.

The problem I had to solve was introduced by another programmer, and that is: he did not formally declare a variable, but instead just started using it. Obviously, I did not discover this until much later, however. Unfortunatly, this variable was set up as a counter, and because the name was generic, it was used in several functions to accumulate the count within different functions. The person who originally programmed it did not know any better, and probably thought that while odd, since javascript allowed him to use the variable without issue, that it must be ok.

Well, it turns out, I got the task of debugging this particular code, which was throwing some sort of “index out of bounds” error that no one could find. After many days of beating my head against the problem, it turned out that instead of declaring var i = 0; in some places, “i” simply came in to use, and was never formally declared. When I found this problem, the var declaration added to the variable fixed the problem, but I never really knew what was going on in the first place to cause the problem, because the error was showing up in different methods, which didn’t make sense because of my presumptions about scope in JavaScript.

It turns out, if you don’t formally declare a variable in JavaScript, but instead just start using it, the scope for that variable is global. I discovered this only recently, after watching a great series on JavaScript by Douglas Crockford. The series is available via Yahoo!’s video service, and is entitled “The JavaScript Programming Language”.

The series is about 2 hours in length, and covers a vast amount of JavaScript nuances and gotchas, and is highly recommended for even the seasoned JavaScript programmer. Douglas Crockford also is the author of a very cool tool you may be familiar with, called JSLint. This tool is very interesting, in that it will tell you more about your JS programming habits than you ever wanted to know. It is a great tool, and I highly recommend investigating these tools to help you become a better JS programmer.

Downtime :(

Downtime :(

Sorry for the recent downtime.. My IP got switched by my ISP, so my DNS records were incorrect for a moment. I also took the time to upgrade to wordpress 2.3.3 while my system was broken. Let me know if you experience any problems so i can fix them ASAP. Thanks..