Skip to content

Posts from the ‘Programming’ Category

Python receives Linux New Media Award

Python has received the Linux New Media Award in the category Best Open Source Programming Language.

Knoppix inventor Klaus Knopper handed over the Best Open Source Programming Language prize, this year hotly disputed among the jury. The distinction went to Python. “The thing can do anything,” Knopper expressed. Martin von Löwis of the Python Foundation accepted the award for the Python community.

[mIRC] Colour talker.

Version 1.02 – Now detects if +c or +S is set on the channel, and will stop using colour if it is.

Copy the code below:

; Colour talker v1.02
;- first release
;- fixed a silly coding error -_-, my bad (numbers wouldn't show in colour talker)
;- added a bit more error checking, still not perfect, but I can't be arsed right now.
;- Detects channel mode +S or +c (strip colour codes, block colour codes) and will stop using colour in accordance

on *:LOAD:{
   echo -atc info * Info: Successfully loaded colour talker.
   echo -atc info * Info: For a quick guide on how to use this, type /ctalk help.
   echo -atc info * Info: Alternatively you may use the menu, Colour Talker, to set up this script, it only takes a few moments. Enjoy ;).
on *:UNLOAD:{
   echo -atc info * Info: Unloading all colour talker variables...
   .unset %ctalk.*
   echo -atc info * Successfully unloaded colour talker.

#Ctalker off
on *:INPUT:*: {
   if ($left($1,1) == $chr(47)) || (Status Window == $active) || (@* iswm $active) return
   if ((c isincs $chan($chan).mode) || (S isincs $chan($chan).mode)) return
   if ($ctalk == $false) {
   echo -atc info * Error: You have colour talker enabled but have not set up your colours, type $+($chr(2),/ctalk set,$chr(2)) to set it up.
else {
   ;set start marker
   var %x 1
   ;loop, while marker is less than total tokens
   while (%x <= $gettok($1-,0,32)) {
   ;get the first letter of current token
   var %first $mid($gettok($1-,[ %x ],32),1,1)
   ;get the rest of the word, set it to our text variable
   var %text %text $replace($mid($gettok($1-,[ %x ],32),1,1),[ %first ], $+($chr(3),[ %ctalk.c1 ],[ %first ],$chr(3),[ %ctalk.c2 ])) $+ $mid($gettok($1-,[ %x ],32),2,$calc($len($gettok($1-,[ %x ],32) - 1)))
   ;increase our marker, move on to next token
   inc %x
   msg $active %text
#Ctalker END
alias ctalk {
   if $isid {
      if ($len(%ctalk.c1) == 1) || $len(%ctalk.c1) > 2) || (%ctalk.c1 > 15) || (%ctalk.c1 !isnum) return $false
      elseif ($len(%ctalk.c2) == 1) || $len(%ctalk.c2) > 2) || (%ctalk.c2 > 15) || (%ctalk.c2 !isnum) return $false
   else return $true
   if ($ctalk == $false) echo -atc info * Error: Type $+($chr(2),/ctalk set,$chr(2)) to set up.
   if ($1) {
      if ($1 == on) {
         if ($group(#ctalker) == on) echo -atc info * Error: Colour talker is already enabled
         else {
            .enable #ctalker
            echo -atc info * Info: Colour talker is now $+($chr(2),enabled,$chr(2))
      if ($1 == off) {
         if ($group(#ctalker) == off) echo -atc info * Error: Colour talker is already disabled
         else {
            .disable #ctalker
            echo -atc info * Info: Colour talker is now $+($chr(2),disabled,$chr(2))
      if ($1 == set) {
         var %ctalk.confirm $$input(We are now going to set up the colour talker! $+ $crlf $+ $crlf $+ Press "Ctrl + K" for colour reference.,oi,Colour Talker)
         set %ctalk.c1 $remove($$input(Choose a colour: e.g. 2,eo,Select Colour One,%ctalk.c1),$chr(3))
         if ($len(%ctalk.c1) > 2) || (%ctalk.c1 > 15) || (%ctalk.c1 !isnum) {
           echo -atc info * Error: Colour selected must be a numerical value between 0 and 15.
           goto colour1
         if ($len(%ctalk.c1) == 1) set %ctalk.c1 $+(0,%ctalk.c1)
         set %ctalk.c2 $remove($$input(Choose a colour: Ex. 12,eo,Select Colour Two,%ctalk.c2),$chr(3))
         if ($len(%ctalk.c2) > 2) || (%ctalk.c2 > 15) || (%ctalk.c2 !isnum) {
            echo -atc info * Error: Colour selected must be a numerical value between 0 and 15.
            goto colour1
         if ($len(%ctalk.c2) == 1) set %ctalk.c2 $+(0,%ctalk.c2)
      if ($1 == help) || ($1 == info) {
         echo -atc info $str($chr(42),115)
         echo -atc info * The colour talker enables you type in colours that will brighten up your IRC chat a bit (or annoy other users!).
         echo -atc info * Please note this script took just a few minutes to conjure up. Any problems get in touch! forgotten, #mIRC, #Coding,
         echo -atc info * Now the important stuff, how to use this thing:
         echo -atc info * To set the colour talker colours type: /ctalk on
         echo -atc info * To turn the colour talker on type: /ctalk on
         echo -atc info * To turn the colour talker off type: /ctalk on
         echo -atc info * For this guide again type: /ctalk help
         echo -atc info $str($chr(42),115)
   elseif ($1 == $null) echo -atc info * For help using the colour talker type: /ctalk help

menu channel,status {
Colour Talker
.Set Colours:ctalk set
.Help/Info:ctalk help
. -
. $iif($group(#Ctalker) == on,$style(1) Enable,Enable):ctalk on
. $iif($group(#Ctalker) == off,$style(1) Disable,Disable):ctalk off

/ctalk help
– Concise information on using this script

You can also use the popups.

I can’t remember who requested this script, and I’m sure I passed it on via IRC anyway. But regardless 😛 here it is for everyone else to see. As always comments/criticism/advise welcomed.

[mIRC] Request: Ban an IP file

A quick and short script written to zline IPs in a specified file. The IPs must be listed in the file as one IP per line, e.g.:

Follow the instructions to use.

; To use:
;1) Type /ipban.reset
;2) Ensure you specify the right file/directory in set %ipban.ipfile "nodes.csv"
;3) Type /ipban
;4) Wait until script completes, can take a while depending on size of file.

alias -l ipban_next {
  if (%ipban.pos <= {
    zline $+(*@,$read(%ipban.ipfile,%ipban.pos)) 1d Tor Exit Servers are not permitted on this network
    inc %ipban.pos
  else {
    echo -atc info *** Zlined IPs from %ipban.ipfile
    .unset %ipban.*
alias ipban {
  set %ipban.ipfile "nodes.csv"
  if ($isfile(%ipban.ipfile) == $false) { echo -atc info *** IP Ban Error: %ipban.ipfile does not exist | return }
  set $lines(%ipban.ipfile)
  if (%ipban.pos == $null) { set %ipban.pos 1 }
  .timer -m 1 5 ipban_next
alias ipban.reset .unset %ipban.*

Let me bring to attention my use of timers over a while loop for budding scripters.

The reason is for large IP files, a while loop will freeze your script. For this reason a timer was used with a 5 millisecond delay, ensuring fast zlines but without freezing the script.

I will edit this script to auto carry out /ipban.reset upon execution, but, as of now, this isn’t required as it does its job (plus I’m short on time again!!!).

Note: to edit the zline time and message:

zline $+(*@,$read(%ipban.ipfile,%ipban.pos)) 1d Tor Exit Servers are not permitted on this network

“1d” to something you want
“Tor Exit Servers are not permitted on this network” to something you want

Popular UK Dating Site Relies on MySQL to Power its Rapid Growth

MySQL AB, developer of the world’s most popular open source database, today announced that has selected the MySQL database server for its fast-growing Web 2.0 site. has rapidly become one of the most popular dating websites in the UK, with over 150,000 current users and a further 10,000 joining each month. At peak hours, there may be as many as 16,000 concurrent users in the system. Launched by TV personality Sarah Beeny and business partner Amanda Christie in September 2005, the site has been described as ‘more addictive than lemmings’.

The viral community growth of the site has been a challenge for its technical staff to keep up with. needed a fast, flexible and reliable database that would scale to support its growth. The database had to be cost-effective and backed by a high level of customer support to ensure availability at all times.

“After analysing the various solutions on the market, MySQL was the clear winner. We decided to design the site from the ground up with MySQL and PHP as the foundation in a classical scaled-out LAMP environment,” explains Matt Bridges,’s Technical Director. “I am extremely pleased with the technical support we have received from MySQL AB. We always get a quick response from someone who knows what they’re talking about. It’s the best customer service I’ve experienced from any software company.”

Matt Bridges and his team have found the MySQL database extremely well suited for the needs of a fast growing Web 2.0 site. “The speed of MySQL always impresses me and is the biggest benefit for us. We can squeeze in a surprisingly large amount of queries and concurrent users per second using low cost commodity hardware,” says Bridges. “We also leverage the flexibility to use specific storage engines for different needs.”

Managing Director, Amanda Christie, is enthusiastic about the continuing relationship with MySQL AB. “ changes people’s lives – we get reports of weddings every week here. If we are the maid of honour, then MySQL is the best man!”

Bertrand Matthelié, MySQL AB’s EMEA marketing director, said: “ is yet another demonstration of a fast-growing online company that has been able to jumpstart its business using MySQL. Using our high-performance database on lower-cost commodity hardware, companies can cost-effectively scale their infrastructure. We’re certainly delighted to contribute to so many happy couples in the UK!”