Forum Netiquette

Forums are like giant online buildings full of people who want do discuss similar topics — you wouldn’t join a forum about cooking and post a topic about how rabbits don’t wear shoes, just like you wouldn’t go to a cooking class and try to start a discussion on the topic — the forum “building” has a main topic, different floors for less broad topics, and individual rooms for specific discussions. New rooms can be made by anyone, and the people can move freely between rooms. But there are police officers (moderators) that help to keep the forum building safe for everyone. They can remove rooms, lock them, move them to different floors, and change what members of the rooms said. To keep the police officers in check, there are sheriffs. The sheriffs (administrators) can remove people from the building and even change the structure of the building. The problem is that there are many more normal people than police officers and sheriffs. Continue reading

IRC: Dangerous?

Can I link to an IRC channel?
No. IRC is dangerous. Worse than linking to a website.
How is it dangerous?
IRC is dangerous. With all the bots and whatnot that can be created for them… Heck, we’re not even allowed to have links to them on the site. It’d be violating TOS with our server provider.
Most IRC bots are harmless.

Meanwhile, on the IRC channel,

Don’t listen to him, haggisbot!
Cover your ears!

However, according to Wikipedia,

An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. It differs from a regular client in that instead of providing interactive access to IRC for a human user, it performs automated functions.

The historically oldest IRC bots were Bill Wisner’s Bartender and Greg Lindahl’s GM (Game Manager for the Hunt the Wumpus game).[1]. Over time, bots evolved to provide special services, such as managing channels on behalf of groups of users, maintaining access lists, and providing access to databases.

Often, an IRC bot is deployed as a detached program running from a stable host. It sits on an IRC channel to keep it open and prevents malicious users from taking over the channel. It can be configured to give channel operator status to privileged users when they join the channel, and can provide a unified channel operator list. Many of these features require that the bot be a channel operator. Thus, most IRC bots are run from computers which have long uptimes (generally running a BSD derivative or Linux) and a fast, stable Internet connection. As IRC has become popular with many dial-up users as well, special services have appeared that offer limited user-level access to a stable Linux server with a decent connection. The user may run an IRC bot from this shell account. These services are commonly known as shell providers.

A bot can also perform many other useful functions, such as logging what happens in an IRC channel, giving out information on demand (very popular in IRC channels dealing with user support), creating statistics, hosting trivia games, and so on. These functions are usually provided by user-writable scripts, often written in a scripting programming language such as Tcl or Perl, added to the bot in question. Channels dedicated to file sharing often use XDCC bots to distribute their files.

IRC bots are particularly well-used on IRC networks without channel registration services like ChanServ, such as EFnet and IRCnet, and on networks that may prevent channels from being registered due to certain registration requirements (minimum user count, etc.), such as Undernet or QuakeNet. Where bots are used for administrative functions such as this, they may need more access than a normal client connection allows. Some versions of IRC have a “Service” protocol that allows clients with these extra powers. Such server-sanctioned bots are called IRC services.

Bots are not always welcome. Some IRC networks forbid the usage of bots. One of the reasons for doing so is that each nickname connected to the network increases the size of the network database which is being kept in sync across all servers. Allowing for bots in large networks can cause a relevant amount of network traffic overhead which needs to be financed and may even lead to netsplits. This however is a shortcoming of the IRC technology, not the bots.[2][3]

People that create an IRC bot use either the scripting language built into a client, or appropriate frameworks of a suitable programming language, or they use an existing bot implementation, and adapt it to their needs.

Popular IRC bots include Eggdrop, psotnic, Winbot, EnergyMech, DreamBot, Infobot, blootbot, Supybot, ShoutIRC and tec.

Nowhere in there does it say that the most IRC bots are malicious.  In fact, it doesn’t say anywhere that any IRC bots are malicious.  Why?  They aren’t.

Take haggisbot for example.  Someone at the highest userlevel possible could ask about volumes of a magazine, reboot the bot, play ping pong, make it say something, tell other users that they fail, facepalm, kick out users that are causing trouble from the chat, ask for a userlist, ask about ranks and possible commands, use haggisbot as a calculator, temporarily mute and unmute trouble users, and do simple string conversions like MD5, reversing, base64 encoding/decoding, rotating the alphabet 13 letters, and making their text show up in a rainbow.

Nowhere in there is anything that can do harm to anyone.  There are no hacking functions.  All haggisbot does is listen to simple commands, kick out people who break the language rules, and log the chat.

IRC bots don’t cause identity theft.  In fact, bots like NickServ prevent it.  Just by registering your name with NickServ, you can prevent other people from taking your nickname.  If someone joins any chat on freenode as Nightgunner5, they will have 30 seconds to log in with a password, and if they don’t, they will have their nickname changed to Guest with a few random numbers after it.

IRC bots, especially ChanServ, can prevent a channel from being taken over by hackers.  If a netsplit occurs, or a server needs to be rebooted, an IRC bot can keep the channel safe just by staying in it.  If there were no IRC bots, there would be no way to keep random people from becoming operators.  If a channel is empty on an IRC server, anyone who joins it will instantly become an operator, and obtain the ability to modify any aspect of the channel.  However, if the channel is registered with ChanServ, a simple /msg ChanServ RECOVER #channelname can get the channel back in order quite quickly, especially since ChanServ can make itself an operator.

If anyone can tell me one reason that IRC is more dangerous than a website, please make a comment here.

Browser Warz-Part 3: Things just got interesting.

In all of the previous Browser Warz competitions, there were only 4 competitors.  Now, there are 26.  Now, I hope you’re thinking “26 browsers on one computer? This guy must be crazy!”, because I am.

However, unlike the other Browser Warz competitions, the browsers in this competition will be facing other versions of their own kind before going on to face the winners of each individual competition.

There are 4 things that the browsers will be scored on in this leg of the competition:

  • CSS errors (Is the purple header there?  Does the body of the page match up with the header?  Is the footer matching?  Are the horizontal rules hidden?)
  • JavaScript errors (Are there any?  How bad are they?)
  • Speed of the 3 tests (How fast were each of the three tests?  How long did it take 5 repeats of each test to occur?)
  • Total time taken on the tests (How many seconds did it take?)

The 26 browsers are split up into 5 categories:

  • Internet Explorer icon for Browser Warz Internet Explorer (7 browsers, page 2)
  • Firefox icon for Browser Warz Firefox (4 browsers, page 3)
  • Opera icon for Browser Warz Opera (6 browsers, page 4)
  • Netscape icon for Browser Warz Netscape (7 browsers, page 5)
  • “Other” icon for Browser WarzOther (2 browsers, page 6)

This competition, because it is so long, is divided into pages to reduce loading time.

Browser Warz-Part 2: Safari wins

The test:

To pass test 2, the browser has to:

  1. Correctly render the page from last time, except not gzipped.
  2. Read base64 encoded data and parse it as JavaScript.
  3. Do 10 million empty loops, 5 million Math.random() calls, and 500 thousand empty eval() calls as soon as the page loads.
  4. Respond to a double click event.
  5. Ask for permission to do memory-intensive scripts.
  6. Do 250 million empty loops, 125 million Math.random() calls, and 12.5 million empty eval() calls in under 10 minutes.
  7. Not crash during the time that it does step 3, although not responding for up to 5 minutes at a time is ok.

The results:

Safari went the fastest:  256.564 seconds (4.276 minutes)
Safari-Browser Warz test 2

Next in speed was Opera, with a time of 275.92 seconds (4.599 minutes)
Opera-Browser Warz test 2

And then comes Firefox, with a time of 371.446 seconds (6.191 minutes)
Firefox-Browser Warz test 2

Internet Explorer was disqualified because it did not render the page, nor did it respond to the double click event when I gave it a .html copy of the test.  I was curious, however, so I used the javascript: protocol and tested it.  It came in faster than opera!
IE-Browser Warz test 2

As always, you can download the test.  Here it is: Browser Warz test 2

Browser Warz-Part 1: Safari worse than IE?

I like testing my browsers to see how standards compliant they are.  As you know from my previous entries, Internet Explorer is definitely NOT standards compliant.  However, I could not have predicted that Safari would fail the test worse than IE.

And now, the rules:

  • No “Browser Warz” tests will be based on looks, it must be blatantly obvious if a browser has passed the test.
  • All four browsers (IE, Firefox, Opera, and Safari) will be used in either the latest released version or the latest beta available to the general public, depending on the test.
  • No browser-specific code will be used.
  • Every test will be available for download.
  • Every test will be completely standards compliant.

Browser Warz test one tests the following:

  • Gzip decompression
  • xHTML file type and content type header
  • Base 64 decoding
  • data: protocol
  • css @include at rule
  • <!– vs <!-
  • Basic css
  • Favicon (Not needed to pass)
  • (Only if failed) Asking before downloading

And now, the results:

Firefox passed with flying colors, it displayed the page correctly, along with the favicon.
Firefox-Browser Warz test 1

Opera also passed, but did not display the favicon.
Opera-Browser Warz test 1

Internet Explorer asked if I wanted to download the page.  It did not display the page at all, therefore it fails the test.
IE-Browser Warz test 1

Safari failed completely.  It didn’t ask if I wanted to download the page, it just went ahead and did it.
Safari-Browser Warz test 1

Browser Warz test 1 can be downloaded here.