03/12/09
The first new features to be added to STUCI Classic in a while, is now here. It is the HeavyThought(tm) time management modification to improve engine play and also a time patch that nearly eliminates all loses due to running out of time or lag. HeavyThought works with a time factor, which is hard-coded as 2 or 200% to double the engine's think time in the middle stages of the game. If the engine can build a lead in these parts, it will have no trouble finishing out the opponent in the final stages, especially with the time patch also in place. In many cases, the engine will hold on for a draw if it can not build the lead, and if it happens to exit the HeavyThought mode without building a lead, then the engine would not have won anyways in standard play. HeavyThought works until it reaches below a certain time, and then it turns itself off.
Finally these new features are not implemented in time-incremental games. For one, engines do not have trouble with timing out when there is incremental play. For two, heavy thoughts in incremental play would mean the engine would go into HeavyThought mode right after an increment is added, and then it would switch to time save mode after the next move, and then after another increment of time is added, back into HeavyThought mode. I figure this is not good to switch between modes so I disabled it and let the engine handle incremental play.
=====
01/27/09
There was a little change in Yahoo's log in page for captcha. The fix is simple for any STUCI script, just run a find and replace on "testword" and replace with "captchaAnswer".
=====
09/19/08
I'll be releasing a highly unstable version of STUCI Classic within a day or two. I'll be going through the code to make sure I don't release any super-sensitive information out. Yes, the new protocol will be in there (captcha-less logins, 2 week profile memory, and more info can be found in the private post I moved to public now). Take care guys.
New changes: http://www.autochess.com/forum/viewtopic.php?f=14&t=404
Technical details: http://www.autochess.com/forum/viewtopic.php?f=14&t=405
=====
06/13/08
I am thinking about modularizing the networking and login routines. This should allow users to log onto multiple servers at once, or multiple rooms at once. To manage the connections, an interface would need to be created. I believe something as simple as typing this in the command would be good.
list net
set net #
So when a user wants to list the net connections, it would display a line item view with the user id logged in and the room id. The main display would only show the current connection's chat. To display another room's chat wouldn't be hard but how to go about displaying that information would be awkward if there was a long backlog of information. I'd have to create a browse/log system and that's not desired by me today. So the simple way is to ignore messages from other net connections and only process room/table data live.
Speaking of multiple connections, imagine linking room chats together by relaying messages back and forth. It's an awesome idea but would probably cause Yahoo server to boot due to flooding of messages. Although flood control could be implemented.
[chess_adv/3/zappa_engine] kibitz: hello
[chess_adv2/14/fasterlol] kibitz: hey, examples of cross server message display
crosslink shouts: [chess_adv/zappa_engine] hello guys. talking to you from another server, write back to me by prefixing your messages like this crosslink: hey back!
Actually, the above method isn't such a bad idea to manage chats across servers. Just another crazy idea for now...
Oh and to go with this idea, I would have to limit the user to play one chess game at a time. So by using the in progress game flag, I would disable starts on other tables. And starting any other game would cause the user to stand(and sit again probably) to clear any start game requests. Starting a game with the opponent already having requested start will cause the user to do the same before starting. Starting the game by requesting it in multiple tables, and then having multiple opponents accept before user could reset the start requests themselves would mean auto-resign on other tables (no ratings lost before 30 sec remember).
=====
06/05/08
This project has been renamed to STUCI Classic.
=====
06/05/08
I didn't really do much of anything except restore the ability of captcha's to be shown after Yahoo did a minor web update to their login page, so the version is the same here. Also, this is the first time I edited these files in Windows, so when I saved it, it added Windows linebreaks, so the file size expanded. I can't imagine how it will look when I return to a Linux OS to edit the files since it looked awful in Wordpad/Notepad when I tried to update the code. Here's the code fix I applied:
if ($pic =~ m%http://ab.login.yahoo.com/img%) {
my $captcha=$ua->get($pic,':content_file' => './captcha.jpg');
}
=====
05/11/08
Currently a live stealth edit here. Will be doing a quick update to STUCI. Shouldn't be noticable by anyone but I just want to make these notes here of changes as I do them. It's been a while, and these changes are pretty small so no need to publicize them...
ics_draw code adjusted to check proper turn. (thanks matematiko)
flood rules relaxed (lobby was 4 spams/10 seconds, now 6 spams/15 seconds, room was 4/10, now is 8/15)
delayed boot for sitting down at a table without pressing start, and after a game ends. cancelled if player hits start.
some verbosity(debugging messages etc) cleaned up
fixed delayed boot (was delay booting in 45 seconds instead of programatically defined)
=====
05/05/08
What does STUCI stand for? Server To UCI. That's right, it was intended as a direct link between Yahoo, the server, and UCI, the engine. There would be no winboard needed. There would be no fritz needed. In fact, there will be no extra programs taking up memory and becoming a resource hog. You get more control over the game experience. Are you thinking about switching up engines in between games? No problem. What about switching up engines midgame!?!? No problem. How about changing game settings? Yes, that's doable midgame also. That's the power of having direct access to the UCI. You want scores? More information on the engine node speed? How about what line of moves the engine is thinking about? It's all available. Here is just the first perl file I'm releasing as proof of concept. You can control any UCI engine here through a perl file. This will be integrated into STUCI at some point into the future.
For starters, if you want to play around with it, you will need to have Perl installed. You will need to edit the script variables and point it to the correct location of the UCI engine. And you will need to know some UCI commands. To get you started, after you load up the script, you will have a command box to type to the UCI engine. The first thing you do is say hello to the engine. You do this by issuing the command 'uci'. It's going to return to you it's options that you can change, and then it's going to say, I'm ok 'uciok'. After that just so you don't have to play around too much, you can type 'go' to see instantly make a move. The response will be a bestmove. Another thing you can try typing is 'go ponder'. This will start the engine thinking on the oppponents move! It's currently set up to display 5 seconds of information and then cut back to the command box. But if you press enter you can see what else it's thinking for another 5 seconds. The final command to get out of ponder mode is 'ponderhit'. This means the opponent made the predicted move the engine was pondering so that's how the engine gains an advantage during the opponents turn. If the opponent didn't make the right move, then the engine is issued a 'stop' command and another go command with the board position. Anyhow, in depth uci game play is not the purpose of this post but I wanted to give you guys a sample of how it works.
Here's the conceptual file now
(NOTE: another beta product)=====
10/30/07
Okay, another tester/developer release. Just cutting and pasting from my todo file so you can get an idea of what's new.
user database stored to external file stuci.dat
blacklist implemented
flood detection
special styles board codes (13+99 unofficial)
redundant code removed (getopt 'pl', opcode 0x62 versus 39, board refresh during top_clock)
flag conditional fixed
users/credits modulized so as to clean up clutter
login fixes (quit works, captcha verification)
hanging fork fix (exits wouldn't exit)
cycle and recover commands
bootmsg variable
credits expanded fully (credit multiplier, loses, draws fees)
=====
10/24/07
Latest (pre)release. I still don't feel comfortable taking the testers/developer tag off this version of STUCI so user beware, it's my disclaimer
=====
10/22/07
Again, this is testers/developer version of STUCI. I should note no version of STUCI will ever be supported by me. It's just a personal project I share that some people find useful.
=====
10/17/07
Hey I'm just going to edit this top post with new information so it can be easily found. This is a testers/developers only version of STUCI or for those who like to live on the edge.
=====
10/15/07
I'd like to share STUCI here. If it is against the administator's wishes, feel free to remove this post.
STUCI is a personal project of mine to address the shortcomings I see in YaY. I just happen to like to share my work with others and hope they appreciate it.
Originally, I just started with this project by bugfixing and such. Then I decided it would be neat if I could interface UCI with YaY directly instead of having to go through the hoopla of loading up Fritz. STUCI is an acronym of Server-To-UCI. Later, I found out about polyglot. But I still find it interesting to see if I can interact with the UCI engine protocol directly as you can do some pretty interesting things then. Maybe I'll share more information on that later. At the moment, my work with UCI interface is isolated outside in test modules. The STUCI I released is my patched version of YaY (minus that UCI work until it's matured enough to be released).
This is my latest work, which uses the original getapplet-gui.pl as a base for the login and then added captcha support. I also realise the captcha.jpg was downloading corruptly in windows and that was fixed here. It's been tested and working on my windows xp machine. As well, I included code to launch winboard/xboard with polyglot automatically. It helps in my linux environment because I don't have to open up two shells. It most likely works in windows too but I haven't tested.
This link is for release 071014. http://www.bestsharing.com/f/CAqkcUc348447 [obsolete link]
Enjoy!













News