--- 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 &lt;ctype.h&gt; and 
   &lt;limits.h&gt; 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