--- Feb 2, 2005
--- I happened upon KROW today.  After reading the "Introduction to KROW" on 
--- their website, I created an account and logged in using the console/text 
--- interface.  This is what I saw:

Trying 64.71.163.206...
Connected to login.krow.net.
Escape character is '^]'.

login: saul
password:

Login successful.

Welcome to KROW, saul.  107/3218 members online.
You have 0 krowmids in your account.  
You are in #newcomer with 7 members (3 Masters).

Type 'help' for a list of commands at any prompt.
22:48> help

Commands:
  chat [#<channel>]         receive chat messages on the specified channel
  gimme [<search_phrase>]   gimme some work to do
  help [<cmd>]              help on a specific command
  krowbench                 go to the krowbench
  list [all|online|#<room>] show all, online, or room members by default
  market                    go to the market
  request <title>           file a request for work to be done
  view [<user>]             look at user's profile
  tournament [<subject>]    enter a tournament and go to tournament mode

22:51> list
#newcomer has 7 members (3 Masters)
Members (7):  zerbert ayiuk spoohw Arguably IuIuIuI madrian saul 
Masters (3):  twinkle Winston Gerbil

22:51> view gerbil
Gerbil
     Status] Idle for 36 minutes.  
   37 Belts] krow-3 ...
 2 Students] madrian alienhead

       Info] http://www.gerbilsplace.net

22:52> chat
Entering chat mode in #newcomer:  Welcome newbies, one and all!
[previously on #newcomer]
22:15  madrian: mom's calling dniner
22:15   Gerbil: see ya
22:16  * madrian signed off.

22:52   Gerbil: welcome saul
22:52     saul: hello Gerbil.  i am a professional software developer with some
                free time on the weekends.  how would you suggest i start out?
22:54   Gerbil: first you should get yourself ranked.  use the 'tournament'
                command ('/tournament' in chat).
22:55     saul: thanks!
22:55     saul: tournament
22:55     saul: sorry

22:55> /tournament
Leaving chat mode in #newcomer (still in room).
Entering tournament.  You own 0 belts, 0 vkrowmids.

    Choosing tournament subject with highest market value:  C/C++
       How long have you been coding with C/C++?  
22:55*> 4 years
       How many rounds would you like (1, 3, or 5)?
22:55*> 1

22:56  Entering saul in the tournament queue...

  1 round vs. Maizuka

       Round 1: Implement a C function called atoi(), that converts 
       a string to an integer.  You may assume that <ctype.h> and 
       <limits.h> are #included. 
       
  This round will terminate at 23:26.

22:56> info maizuka
Maizuka
   Status] occupied in a tournament until 23:26
   1 Belt] krow-green

     Info]  i attend university of sydney, compsci major.  been coding 
            for almost a year.

22:56  #newcomer spoohw> haha n00bs=)

22:56> help
(30 minutes remain) 
Commands:
  edit			edit your solution (overrides previous entry)
  line <line#>: <l>	replaces or inserts <l> into the latest submission
  test <input>		provide an test input string
  status 		display status of the tournament
  dispute <test#>	dispute the results of a test case
  show source      	displays your current source code
  show tests 		displays the current combined test suite

22:57> edit
(29 minutes remain)  Press ^D to submit, ^C to revert changes, ^Z to suspend.  
 1*> int atoi(char *str) 
 2*> { 
 3*>    int r=0; 
 4*> 
 5*>    while (isdigit(*str)) 
 6*>    {
 7*>       r *= 10;
 8*>       r += *str - '0';
 9*>       ++str;
10*>    }
11*>    return r;
12*> }^D

(21 minutes remain)  
     Submission 1, saul: compiles with 0 warnings.  
                         7 tests pass, 4 tests fail.

23:05> test 5
  T12: "5" = 5 (5)
23:05> status
(21 minutes remain)  
     You created 1/12 test cases and 1/1 submissions. 
     Submission 1, saul: compiles with 0 warnings.  
                         8 tests pass, 4 tests fail.
Bonuses:  +1 for first submission

23:05> show tests
   8 tests pass, 4 tests fail.
       input        reference output       your output     
   T1: "1000"             1000                1000
   T2: "pigs"             0                   0
   T3: "amy545"           0                   0
   T4: "234amy"           234                 234
   T5: ""                 0                   0
!  T6: NULL               0                   Segmentation fault
   T7: "298347"           298347              298347
*  T8: "-1983827"         -1983827            0
   T9: "298,347"          298                 298
* T10: "99999999999999"   2147483647          276447231
* T11: "-99999999999999"  -2147483648         0
  T12: "5"                5                   5

23:07> line 4: if (str == NULL) return 0;                     // T6
23:10> line 3.1: char sign = '+';                   
23:10> line 4.1: if (*str == '-' || *str == '+') { sign = *str; str++; }
23:11> line 10.1: if (sign == '-') r = -r;                    // T8
23:12> line 8.1: if (r > INT_MAX/10) { r = INT_MAX; break; }  // T10

23:14> test 000045
  T13: "000045" = 45 (45)

23:14> test "    5318008"
* T14: "    5318008" = 5318008 (0)

23:14> test "-01"
  T15: "-01" = -1 (-1)

23:15> test "-pigs"
  T16: "-pigs" = 0 (0)

23:15> test "    -5"
* T17: "    -5" = -5 (0)

(10 minutes remain)
23:17> test "    +5"
* T18: "    +5" = 5 (0)

23:18> line 4.01: while (isspace(*str)) str++;   // T14, T17, T18
23:18> show source
1    int atoi(char *str) 
2    { 
3       int r=0; 
3.1     char sign = '+';
4       if (str == NULL) return 0;                      // T6
4.01    while (isspace(*str)) str++;                    // T14, T17, T18
4.1     if (*str == '-' || *str == '+') { sign = *str; str++; }
5       while (isdigit(*str)) 
6       {
7          r *= 10;
8          r += *str - '0';
8.1        if (r > INT_MAX/10) { r = INT_MAX; break; }  // T10
9          ++str;
10      }
10.1    if (sign == '-') r = -r;                        // T8
11      return r;
12   }

23:18> status
(8 minutes remain)  
     You created 7 of 18 test cases and 1 of 2 submissions. 
     Submission 1, saul: compiles with 0 warnings.  
                         17 tests pass, 1 tests fail.
Bonuses:  +1 for first submission

23:18> chat
[already on #newcomer]
22:55     saul: sorry
22:56   Gerbil: no worries
22:56   spoohw: haha n00bs=)

(7 minutes remain)
23:19     saul: does anyone know if negating INT_MAX results in INT_MIN?
23:19   spoohw: are you in a compo?
23:20   Gerbil: saul, no cheating
23:20     saul: dangit, okay, nevermind
23:20   Gerbil: who are you coding against?
(5 minutes remain)
23:21     saul: your mom
23:21     saul: just kidding, it's some uni student, maizuka
23:21   Gerbil: oh yeah, i've met him, nice kid
23:22     saul: line 8.1: if (r > INT_MAX/10) 
23:22     saul: argh

23:22> /tournament
Leaving chat mode in #newcomer (still in room).
Re-entering tournament vs. Maizuka.

23:22> line 8.1: if (r > INT_MAX/10) 
23:22> line 8.2:    { return (sign == '-' ? INT_MIN : INT_MAX); }  // T10

23:23> status
(3 minutes remain)  
     You created 7 of 18 test cases and 1 of 2 submissions. 
     Submission 1, saul: compiles with 0 warnings.  
                         18 tests pass, 0 tests fail.
Bonuses:  +1 for first submission

23:24  #newcomer  spoohw: you'll get the hang of it :)
23:25  (1 minute remains)

23:26  Tournament results: saul vs. Maizuka
     Submission 1, saul: compiles with 0 warnings.  
                         17 member tests pass, 1 tests fail.
			 6 master tests pass, 1 test fails.
   Base:   6 points for passing master tests
Bonuses:  +1 for first submission
          +3 for creating tests opponent failed

     Submission 2, Maizuka: compiles with 0 warnings.
                         15 member tests pass, 3 tests fail.
			 5 master tests pass, 2 tests fail.
   Base:   5 points for passing master tests
Bonuses:  +1 for creating tests opponent failed

Round 1, final score: saul 10, Maizuka 6

You win the tournament!  You receive a tentative green belt.

You can see Maizuka's entry and results at:
http://www.krow.net/solutions?entry=Maizuka&competition=...

23:26  #newcomer  Gerbil: saul, how'd you do?
23:27  private   Maizuka: nice one, you got me on the spaces

23:27> chat
[already on #newcomer]
23:22     saul: argh
23:24   spoohw: you'll get the hang of it :)
23:26   Gerbil: saul, how'd you do?

23:27     saul: i got a "tentative green belt", what can i do with it?
23:27   spoohw: write tentative code
23:27   Gerbil: saul, go to /krowbench and browse the database for tasks 
                you can complete, bugs you can fix, or tests you can write
23:28     saul: cool, let me grab some food first
23:28  * saul has logged off


<♥> to Help │ ANSI-BBS │ 9600 N81 │ │ Telecom 2.71 │ Online 00:00