OSDN Git Service

[shogi-server] Write more game results in record files
[shogi-server/shogi-server.git] / changelog
1 2017-09-02  Daigo Moriwaki <daigo at debian dot org>
2
3         * [shogi-server] Write more game results in record files
4           As the CSA Record Format standard states, "%TIME_UP" and
5           "%SENNICHITE" are now recorded in CSA files when a game ends for
6           timed up or sennichite respectively.
7           (Closes #37490)
8
9 2017-02-26 Daigo Moriwaki <daigo at debian dot org>
10
11         * utils/csa-filter.rb: Allow csa-filter.rb to filter games by a winner or loser
12           New command lines, --winner <player> or --loser <player>, are now
13           supported to supply extra filtering conditions. Note that each
14           filter is combined as AND condition.
15           E.g.
16           - % ./csa-filter.rb ~/Downloads/20160314 --white gpsfish_xeon --loser gpsfish_xeon
17           - % ./csa-filter.rb ~/Downloads/20160314 --white gpsfish_xeon --winner gpsfish_xeon
18           (Closes #37023)
19
20 2016-12-11  Daigo Moriwaki <daigo at debian dot org>
21
22         * Update Revision to 20161211.
23         * Fix Dockerfile.
24
25 2016-12-09  Daigo Moriwaki <daigo at debian dot org>
26
27         * Allow util/statistics.rb to set a filtering condition of found files
28           Regarding util/statistics.rb, add a new command line option,
29           --filter regexp, to process files that are matched with a regexp.
30           It would make it easier to calculate statistics of certain games.
31           (Closes #36855)
32
33 2016-11-26  Daigo Moriwaki <daigo at debian dot org>
34
35         * [shogi-server] Allow to customize maximum lenght of a login indentifier
36           (Closes #36821)
37           - The current maximum length of a login identifier is 32. Some
38             private uses require longer player names to distinguish each other
39             by specifying randomly generated tokens. It would of help to add a
40             new command line option --max-identifier to overwrite the default
41             maximum length.
42         * Build a Docker image for Shogi-server
43           (Closes #36822)
44           - Build a Docker image
45               % make image-build
46           - Running a local shogi-server would look like
47               % docker pull shogiserver/shogiserver
48               % docker run -p 4081:4081 -v `pwd`/logs:/logs shogiserver/shogiserver
49         * [shogi-server] shogi_server/game.rb:
50           - Remove a debug message
51
52 2016-04-09  Daigo Moriwaki <daigo at debian dot org>
53
54         * utils/eval_graph.rb
55           - Support Fischer time control.
56         * [shogi-server] Bump up the revision to 20160409.
57
58 2016-04-02  Daigo Moriwaki <daigo at debian dot org>
59
60         * [shogi-server] Support Fischer Time Control
61           (Closes #36230)
62           - Fischer time control means that:
63             Before a player has made their move, a specified time increment is
64             added to their clock. Time can be accumulated, so if the player
65             moves within the delay period, their remaining time actually
66             increases.
67             (https://en.wikipedia.org/wiki/Chess_clock)
68           - New syntax of game names:
69             An 'F' suffix denotes a Fisher time in seconds. For example,
70             "floodgate-600-10F" specifies
71               + A floodgate game
72               + Total allotted time is 600 seconds for each player
73               + 10-second increment before a player's move in a Fischer way
74           - The server now proposes game conditions upon a game start with
75             - "Protocol_Version 1.2"
76             - "Increment:<n>" for Fischer Time Control
77           - Kifu files can include the following comment for Fischer Time
78             Control:
79             - "'Increment:<n>"
80         * [shogi-server] Fix some lint warnings.
81
82 2015-12-13  Daigo Moriwaki <daigo at debian dot org>
83
84         * [shogi-server] Enhance capability of Floodgate configuration file
85           - New parameter: Max_Moves, defined in the CSA protocol
86             ex. set Max_Moves 256
87           - New parameter: Least_Time_Per_Move, defined in the CSA protocol
88             ex. set Least_Time_Per_Move 0
89           - Proposed messages distributed to each player upon starting a new
90             game will include Max_Moves as well as Least_Time_Per_Move.
91           - CSA files produced by the server will include settings of
92             Max_Moves and Least_Time_Per_Move in comment lines as follows:
93               'Max_Moves:256
94               'Least_Time_Per_Move:0
95           - The official Shogi-server on wdoor.c.u-tokyo.ac.jp will
96             be running with different parameters, depending on game names.
97             a) Max_Moves will be 256 for floodgate-600-10 games;
98                otherwise, 0.
99             b) Least_Time_Per_Move will be 0 for floodgate-600-10 games;
100                otherwise 1.
101           (Closes: #35839)
102         * [shogi-server] shogi_server/pairing.rb:
103           - LeastDiff attempts more trials, depending of a number of players
104             to be matched, top achieve more optimized matching combinations.
105
106 2015-11-27  Daigo Moriwaki <daigo at debian dot org>
107
108         * [shogi-server] shogi_server/time_clock.rb:
109           - A time consumed could be -1.
110             * The start time of a move is captured after sending a move to a
111               player of the next turn at the end of the giant lock
112             * The end time of the move is captured at the exact time when the
113               server receives it before the giant lock
114             Therefore, end_time < start_time is possible when a player returns a
115             move instantly.
116             Thanks to Tomoyuki Kaneko for reporting this issue.
117             (Closes: #35795)
118
119 2015-02-14  Daigo Moriwaki <daigo at debian dot org>
120
121         * util/statistics.rb:
122           - Updated to investigate floodgate-600-10 games.
123             Consult the result at
124             http://www.sgtpepper.net/hyspro/diary/20150214.html.
125           - Added a companion R script: histogram.R 
126
127 2015-02-01  Daigo Moriwaki <daigo at debian dot org>
128
129         * [shogi-server]
130           - shogi_server/login.rb: When players are logged in, log their
131             player_id if they have it.
132
133 2015-01-20  Daigo Moriwaki <daigo at debian dot org>
134
135         * [mk_rate]
136           - Getting an absolute path of this file was wrong if it was a
137             symbolic link. This issue has been addressed.
138         * [mk_html]
139           - Links to details pages for players now use a relative path so
140             that it works on a testing site.
141
142 2015-01-17  Daigo Moriwaki <daigo at debian dot org>
143
144         * [shogi-server]
145           - shogi-server, shogi_server/{command,game_result,player}.rb:
146             The change at 2014-10-13 was not worked as expected. Reworked.
147             A player, attempting to login with the current live player
148             stalling for more than a day, can forcibly override the current
149             player.
150
151 2015-01-12  Daigo Moriwaki <daigo at debian dot org>
152
153         * [shogi-server]
154           - shogi_server.rb: Follow an API change in a upstream class:
155             LogDevice.previous_period_end
156
157 2014-12-27  Daigo Moriwaki <daigo at debian dot org>
158
159         * [shogi-server]
160           - When a non-rated player participates in Floodgate, the following exception
161             was thrown and a Floodgate game would not start:
162               undefined method `[]' for nil:NilClass
163               ["/home/shogi-server/www/x/shogi_server/pairing.rb:499:in `block
164               in calculate_diff_with_penalty'"
165             This issue has been resolved. Only players who have player ID
166             (i.e. those who log in with valid password) are now allowed to
167             participate in Floodgate as the spec web page
168             [http://shogi-server.sourceforge.jp/rating.html] describes.
169
170 2014-12-23  Daigo Moriwaki <daigo at debian dot org>
171
172         * [shogi-server]
173           - Addressed Ruby incompatibility on ShogiServer::Usi::alphabetToDan.
174             It (and usiToCsa.rb) did not work with Ruby 1.9.3. This issue
175             has now been fixed.
176             Thanks to Hiraoka-san for debugging.
177
178 2014-12-18  Daigo Moriwaki <daigo at debian dot org>
179
180         * utils/eval_graph.rb:
181           - Gnuplot 4.6.6 drew evaluation-value lines with a dashed style.
182             This issue has now been addressed so that solid lines are used.
183
184 2014-11-30  Daigo Moriwaki <daigo at debian dot org>
185
186         * [mk_html]
187           - Corrected a url.
188
189 2014-11-24  Daigo Moriwaki <daigo at debian dot org>
190
191         * Ruby 2.0:
192           - Ruby 2.0.0 or later is recommended to use with shogi-server
193             since Ruby 1.8 reached its End-of-Life on the end of July, 2014.
194         * [shogi-server]
195           - Addressed a warning of duplicated range in a regular expression.
196
197 2014-10-13  Daigo Moriwaki <daigo at debian dot org>
198
199         * [shogi-server]
200           - A player, attempting to login with the current live player
201             stalling for more than a day, can forcibly override the current
202             player.
203           - Kifu record files now includes rating scores of players at the
204             time when games start.  Previously, for rating games, a record
205             file includes player IDs of both players with a line starting with
206             "'rating".  Now it also shows rating scores for players who have
207             valid scores.  The formats for black and white players are as
208             follows:
209               'black_rate:<player_id>:<score>
210               'white_rate:<player_id>:<score>
211             A sample output:
212               'rating:Test_sente+275876e34cf609db118f3d84b799a790:Test_gote+275876e34cf609db118f3d84b799a790
213               'black_rate:Test_sente+275876e34cf609db118f3d84b799a790:2763.0
214               'white_rate:Test_gote+275876e34cf609db118f3d84b799a790:2345.0
215
216 2014-10-12  Daigo Moriwaki <daigo at debian dot org>
217
218         * [shogi_server]
219           - New feature: max moves
220             - New command line option: --max-moves n
221               When a game with the n-th move played does not end, make the
222               game a draw (default 256 in compliance with CSA Protocol V1.2
223               or later).  Setting 0 disables this feature for
224               CSA Protocol V1.1.2 or before.
225             - Players will receive a new message, "#MAX_MOVES", upon an end
226               of such a game:
227                 #MAX_MOVES
228                 #CENSORED
229             - A new log summary type, "max_moves", has been assigned for games
230               drawing with max moves.
231               'summary:max_moves:name_sente draw:name_gote draw
232           - Least time per move:
233             - New command line option: --least-time-per-move n
234               This option specifies a least time in second per move, which
235               is 0 second by default, meaning that a decimal
236               fraction of time for a move will be truncated in compliance
237               with CSA Protocol V1.2 or later.
238               Set 1 for CSA Protocol V1.1.2 or before.
239
240 2014-07-19  Daigo Moriwaki <daigo at debian dot org>
241
242         * [mk_rate]
243           - Added a new option, --abnormal-threshold n:
244             Games that end with the 'abnormal' status are counted in
245             win/lost games for the rating calculation if a game plays more
246             than n plies. Otherwise (or if n is zero), abnormal games are
247             counted out of rating games.
248
249 2014-01-07  Daigo Moriwaki <daigo at debian dot org>
250
251         * [shogi-server]
252           - Released: Revision "20140107"
253
254 2013-12-29  Daigo Moriwaki <daigo at debian dot org>
255
256         * [shogi-server]
257           - Previously, parameters in Floodgate time configuration file were
258             not applied to actual instances. This issue has been fixed.
259
260 2013-12-21  Daigo Moriwaki <daigo at debian dot org>
261
262         * [shogi-server]
263           - shogi_server/pairing.rb: Impose penalty on matches between
264             likely kin players.
265
266 2013-12-15  Daigo Moriwaki <daigo at debian dot org>
267
268         * [webserver]
269           - Listen on only IPv4 explicitly. Under ruby 1.9.3p194, without
270             any bind addresses, ruby attempts to listen on both "0.0.0.0"
271             and "::". Specifying "::" on Linux leads to listen on both IPv4
272             and IPv6, which results in a warning message saying "Address
273             already in use - bind(2)".
274         * [shogi-server]
275           - Released: Revision "20131215"
276
277 2013-12-14  Daigo Moriwaki <daigo at debian dot org>
278
279         * [usiToCsa]
280           - Added a new program, bin/usiToCsa.rb, which is a bridge for a
281             USI engine to connect to the Shogi-server.
282           - bin/usiToCsa is a sample wrapper script.
283
284 2013-12-13  Daigo Moriwaki <daigo at debian dot org>
285
286         * [shogi-server]
287           - shogi_server/league/floodgate_thread.rb:
288             - Added a log message.
289
290 2013-12-08  Daigo Moriwaki <daigo at debian dot org>
291
292         * [shogi-server]
293           - shogi-server/shogi_server/pairing.rb:
294             - Modified comment for LeastDiff match.
295             - Changed log messages and levels. 
296
297 2013-12-07  Daigo Moriwaki <daigo at debian dot org>
298
299         * [shogi-server]
300           - shogi_server/pairing.rb, player.rb:
301             Simplify estimated rate of unrated players (less memory).
302           - Enhanced syntax of Floodgate time configuration file.
303             Now it supports "set sacrifice <player_id>"; it sets a
304             sacrificed player for a specific Floodgate game.
305             ex. set sacrifice gps500+e293220e3f8a3e59f79f6b0efffaa931
306
307 2013-12-05  Daigo Moriwaki <daigo at debian dot org>
308
309         * [shogi-server]
310           - Added a new pairing method, ShogiServer::ExcludeUnratedPlayers,
311             which filters out unrated players.
312           - Enhanced syntax of Floodgate time configuration file.
313             Now it supports "set pairing_factory <function_name>"; it sets a
314             factory function name generating a pairing method which will be
315             used in a specific Floodgate game.
316             ex. set pairing_factory floodgate_zyunisen 
317           - Implemented conversion of move representation between CSA format
318             and USI one.
319
320 2013-11-24  Daigo Moriwaki <daigo at debian dot org>
321
322         * [shogi-server]
323           - shogi_server/league/floodgate.rb: Improved robustness against
324             empty file under ruby 1.9.3p194
325           - shogi-server:
326             - Previously, reloading in daemon mode failed on
327               ruby 1.9.3p194. This issue has been fixed.
328             - Listen on only IPv4 explicitly. Under ruby 1.9.3p194, without
329               any bind addresses, ruby attempts to listen on both "0.0.0.0"
330               and "::". Specifying "::" on Linux leads to listen on both IPv4
331               and IPv6, which results in a warning message saying "Address
332               already in use - bind(2)".
333         * [mk_game_results]
334           - Fixed for reading Japanese comments under ruby1.9.3p194.
335         * mk_rate-from-grep, mk_rate-grep:
336           - Removed files that are no longer used.
337
338 2013-11-23  Daigo Moriwaki <daigo at debian dot org>
339
340         * [mk_rate]
341           - gsl library may be provided as a gem
342           - Now duplicated inputs are checked and skipped.
343         * test/TC_floodgate.rb
344           - Improved randomness check so that it works on Ruby 2.0.0 as well
345
346 2013-11-04  Daigo Moriwaki <daigo at debian dot org>
347
348         * [mk_rate]
349           - Added a new option, --ignore, which is imported from
350             mk_rate-from-grep.
351         * [mk_game_results]
352           - Flush after each output line.
353         * Rleased: Revision "20131104"
354
355 2013-09-08  Daigo Moriwaki <daigo at debian dot org>
356
357         * [shogi-server]
358           - shogi_server/{game,time_clock}.rb:
359             When StopWatchClock is used, "Time_Unit:" of starting messages
360             in CSA protocol supplies "1min".
361
362 2013-04-07  Daigo Moriwaki <daigo at debian dot org>
363
364         * [shogi-server]
365           - shogi_server/{game,time_clock}.rb:
366             Adds variations of thinking time calculation: ChessClock
367             (current) and StopWatchClock (new).
368             StopWatchClock, which is usually used at official games of human
369             professional players, is a clock where thiking time less than a
370             miniute is regarded as zero.
371             To select StopWatchClock, use a special game name with "060"
372             byoyomi time. ex. "gamename_1500_060".
373
374 2013-03-31  Daigo Moriwaki <daigo at debian dot org>
375
376         * [shogi-server]
377           - %%FORK command: %%FORK <source_game> [<new_buoy_game>] [<nth-move>]
378             The new_buoy_game parameter is now optional. If it is not
379             supplied, Shogi-server generates a new buoy game name from
380             source_game.
381           - command.rb: More elaborate error messages for the %%GAME command.
382
383 2013-03-20  Daigo Moriwaki <daigo at debian dot org>
384
385         * [shogi-server]
386           - New pairing algorithm: ShogiServer::Pairing::LeastDiff
387             This pairing algorithm aims to minimize the total differences of
388             matching players' rates. It also includes penalyties when a match
389             is same as the previous one or a match is between human players.
390             It is based on a discussion with Yamashita-san on
391             http://www.sgtpepper.net/kaneko/diary/20120511.html.
392
393 2013-02-23  Daigo Moriwaki <daigo at debian dot org>
394
395         * [shogi-server]
396           - New command: %%FORK <source_game> <new_buoy_game> [<nth-move>]
397             Fork a new game from the posistion where the n-th (starting from
398             one) move of a source game is played. The new game should be a
399             valid buoy game name. The default value of n is the position
400             where the previous position of the last one.
401             - The objective of this command: The shogi-server may be used as
402             the back end server of computer-human match where a human player
403             plays with a real board and someone, or a proxy, inputs moves to
404             the shogi-server. If the proxy happens to enter a wrong move,
405             with this command you can restart a new buoy game from the
406             previous stable position.
407             ex. %%FORK server-denou-14400-60+p1+p2+20130223185013 buoy_denou-14400-60
408
409 2012-12-30  Daigo Moriwaki <daigo at debian dot org>
410
411         * [shogi-server]
412           - Backported a5c94012656902e73e00f46e7a4c7004b24d4578:
413             test/TC_logger.rb depeneded on a specific directory where it was
414             running on. This issues has been fixed.
415           - Backported 87d145bd1f1a14a33f5f6fbc78b63a1952f1ca90 and
416             2df8c798aeb7f0e77735e893fd1370c2c6f15c4d:
417             shogi_server/floodgate.rb: Generating next time around the new
418             year day by reading configuration files did not work correctly.
419             This issue has been fixed.
420
421 2012-12-28  Daigo Moriwaki <daigo at debian dot org>
422
423         * [shogi-server]
424           - shogi_server/pairing.rb:
425             + There was a bug in the logic avoiding human-human match.
426               This issue has been fixed.
427             + Improved the logic avoiding human-human match. Human-human
428               matches will less likely happen.
429
430 2012-01-07  Daigo Moriwaki <daigo at debian dot org>
431
432         * [shogi-server]
433           - Added shogi_server/compatible.rb, which implements compatible
434             methods and allows Ruby 1.8.7 to run the server.
435           - test/TC_floodgate.rb failed with Ruby 1.8.7. This issue has
436             been fixed.
437           - test/TC_uchifuzume.rb did not run with Ruby 1.8.7. This issue
438             has been fixed.
439           - test/TC_league.rb failed with Ruby 1.8.7. This issue has been
440             fixed.
441         * csa-file-filter,mk_game_results,mk_html,mk_rate:
442           - Updated documents in the command files.
443             Both Ruby 1.9.3 and 1.8.7 are supported.
444           - Make their shebang consistent (/usr/bin/ruby1.9.1)
445         * README:
446           - Both Ruby 1.9.3 and 1.8.7 are supported.
447         * Renewed year of copyright notice in each file.
448
449 2012-01-06  Daigo Moriwaki <daigo at debian dot org>
450
451         * [shogi-server]
452           - test/TC_logger.rb depeneded on a specific directory where it was
453             running on. This issues has been fixed.
454
455 2012-01-01  Daigo Moriwaki <daigo at debian dot org>
456
457         * [shogi-server]
458           - shogi_server/floodgate.rb: Generating next time around the new
459             year day by reading configuration files did not work correctly.
460             This issue has been fixed.
461
462 2011-12-18  Daigo Moriwaki <daigo at debian dot org>
463
464         * [shogi-server]
465           - shogi_server/board.rb, piece.rb: Refactoring to cache OU pieces,
466             which was inspired by 81SquareShogi-server's change
467             (74b24b88c843f1dd767412475b117481d1d5e8eb).
468           - Added shogi-server-profile to take profile of shogi-server.
469         * [mk_rate] [mk_game_results]
470           - Supports Ruby 1.9.3.
471
472 2011-12-12  Daigo Moriwaki <daigo at debian dot org>
473
474         * [shogi-server]
475           - Support Ruby 1.9.3.
476           - Result of test/benchmark.rb
477             - Environment:
478               - CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4200+  
479               - RAM: 4GB
480               - OS: Debian Squeeze
481               - ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
482               - ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
483             - Server:  ruby1.8 (or ruby1.9.1) ./shogi-server hoge 4000
484             - Clients: ruby1.8 (or ruby1.9.1) -d ./benchmark.rb
485               csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa 20
486             - Scores in seconds: (the smaller, the better)
487                             clients
488                             1.8.7   1.9.3
489               server 1.8.7  20 sec  21 sec
490                      1.9.3  26 sec  27 sec
491
492 2010-10-06  Daigo Moriwaki <daigo at debian dot org>
493
494         * [shogi-server]
495           - mk_rate: the usage was not updated.
496             Thanks to Hoki-san to report this issue.  (Closes: #23358)
497
498 2010-09-18  Daigo Moriwaki <daigo at debian dot org>
499
500         * [shogi-server]
501           - shogi_server/board.rb, game.rb: For hadicapped games, wrong
502             initial positions were delivered to players and monitors.  This
503             issue has been fixed. (Closes: #23245) 
504             Thanks to HIDETCHI for reporting the issue.
505
506 2010-09-05  Daigo Moriwaki <daigo at debian dot org>
507
508         * [shogi-server]
509           - shogi_server/login.rb: Enhanced the CSA Login mode.
510             Logging in the server with the CSA mode, users are now allowed to
511             specify a turn preference in an enhanced gamename string which
512             looks like <gamename>-<time>-<time>-<turn>. The first three 
513             parts are a regular game definition. The last "-<turn>"
514             part is optional. 
515             + Without -<turn> (i.e. same as the previous behavior), there
516             is no turn preference. A user's turn will be defined randomly. 
517             + <turn> is either "B" for black or "W" for white.
518
519 2010-09-04  Daigo Moriwaki <daigo at debian dot org>
520
521         * [shogi-server]
522           - shogi_server/{board,command,game,league,player}.rb
523             The Buoy behavior is changed.
524             + Starting a buoy game, players are notified a starting game
525               position with the initial position and moves, instead of a
526               targeting position.
527             + Players are allowed to start buoy games with specific turns.
528               ex. %%GAME buoy_foo-1500-0 +
529
530 2010-08-05  Daigo Moriwaki <daigo at debian dot org>
531
532         * [shogi-server]
533           - shogi_server/command.rb: Prevent a possible password from be
534             logged in a log file when players send invalid LOGIN-like commands.
535             Thanks to Tomoyuki Kaneko for this idea.
536
537 2010-08-03  Daigo Moriwaki <daigo at debian dot org>
538
539         * [shogi-server]
540           - sample/{check_file.rb,check_time.rb,check_time2.rb,test_time.rb}:
541             Added new files to test an issue where mtime of log files was
542             earlier than system time.
543           - shogi_server/league/floodgate_thread.rb: SetupFloodgate#start
544             now returns an instance correctly.
545           - ../shogi_server.rb, ../shogi_server/util.rb: Refactored
546             mkdir_for to Mkdir.mkdir_for.
547           - ../shogi_server/game.rb: mkdir_p will be performed in a global
548             mutex of ShogiServer::Mkdir.
549
550 2010-07-25  Daigo Moriwaki <daigo at debian dot org>
551
552         * [shogi-server]
553           - shogi_server/command.rb: 
554             + For an unknown error command log, an empty line is no longer logged.
555             + Commands specific to 81Dojo, starting with '%%%', are just
556               ignored instead of unknown command errors.
557           - shogi_server.rb: 
558             + Refactoring. Added test/TC_logger.rb to test
559               ShogiServer::Logger class.
560             + Fixed race condition: creating a new directory to archive
561               logs may have caused race condition, which ended up with
562               making the server unavailable. This issue has been fixed. 
563           - shogi-server:
564             + Improved fault tolerance of the server.
565
566 2010-07-23  Daigo Moriwaki <daigo at debian dot org>
567
568         * [shogi-server]
569           - shogi_server/league/floodgate_thread.rb: When the server run
570             with DEBUG mode, it ended up with an undefined variable error. 
571             This issue has been fixed.
572
573 2010-07-17  Daigo Moriwaki <daigo at debian dot org>
574
575         * [shogi-server]
576           - shogi_server.rb, shogi_server/board.rb, shogi_server/move.rb
577             - Refactoring: Board can now move_to() and move_back() a move
578               instead of deep_copy().
579
580 2010-07-11  Daigo Moriwaki <daigo at debian dot org>
581
582         * [shogi-server]
583           - shogi_server/player.rb: Set initial values to BasicPlayer's
584             instance variables.
585           - shogi_server/league.rb: Improved performance of
586             Persistant#get_players. It took about 20 seconds for a large
587             size of players (5,300 lines in players.yaml). Now it completes in an
588             instance.
589
590 2010-06-22  Daigo Moriwaki <daigo at debian dot org>
591
592         * [shogi-server]
593           - A new command line option: 
594               --floodgate-names GameStringA[,GameStringB[,...]]
595             where a game string should be a valid game name such as
596             floodgate-900-0.  
597             .
598             Note: Without this option, no floodgate games are started. If
599             you want floodgate-900-0 to run, which was default enabled in
600             previous versions, you need to specify the game name in this new
601             option.
602           - Floodgate time configuration file:
603             You need to set starting times of floodgate groups in
604             configuration files under the top directory. Each floodgate
605             group requires a corresponding configuration file named
606             "<game_name>.conf". The file will be re-read once just after a
607             game starts. 
608             .
609             For example, a floodgate-3600-30 game group requires
610             floodgate-3600-30.conf.  However, for floodgate-900-0 and
611             floodgate-3600-0, which were default enabled in previous
612             versions, configuration files are optional if you are happy with
613             default time settings.
614             File format is:
615               Line format: 
616                 # This is a comment line
617                 DoW Time
618                 ...
619               where
620                 DoW := "Sun" | "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" |
621                        "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" |
622                        "Friday" | "Saturday" 
623                 Time := HH:MM
624              
625               For example,
626                 Sat 13:00
627                 Sat 22:00
628                 Sun 13:00
629
630 2010-06-01  Daigo Moriwaki <daigo at debian dot org>
631
632         * [shogi-server]
633           - shogi_server/command.rb: Fixed an issue that MONITOR2OFF did not
634             work. Thanks to HIDECHI and koudayu.
635
636 2010-05-10  Daigo Moriwaki <daigo at debian dot org>
637
638         * [shogi-server]
639           - test/*.rb: Improved performance and stability of tests
640           - shogi_server/player.rb: Help the write_thread to terminate
641
642 2010-05-06  Daigo Moriwaki <daigo at debian dot org>
643
644         * [mk_rate]
645           - Previously mk_rate did not count in draw games. Now a draw game
646             is considered to weight 0.5 win and 0.5 loss. Respect
647             Inaniwa-shogi which strategically aims to draw.
648           - a new command line option, --skip-draw-games. In this mode, draw
649             games are just ignored as mk_rate previously did.
650
651 2010-04-25  Daigo Moriwaki <daigo at debian dot org>
652
653         * [shogi-server]
654           - shogi_server/player.rb:
655             Log a warning message in a case that a player closes a
656             connection suddenly.
657
658 2010-04-13  Daigo Moriwaki <daigo at debian dot org>
659
660         * [shogi-server]
661           - shogi_server/command.rb:
662             Equality of MonitorHandler class was wrong. %%MONITOROFF and
663             %%MONITOR2OFF may cause unexpected behavior. This issue has been
664             fixed. Thanks to Kota Fujiwara for reporting.
665
666 2010-03-07  Daigo Moriwaki <daigo at debian dot org>
667
668         * [shogi-server]
669           - If two sequential moves from a player are identical, the last
670             one will be ignored and a game is in play. This situation might
671             happen with human players, especially on slow network,
672             impatiently sending a move twice. 
673
674 2010-02-27  Daigo Moriwaki <daigo at debian dot org>
675
676         * [shogi-server]
677           - The server now provides more accurate time control. Previously,
678             a player's thinking time included a time waiting to get the giant
679             lock. This may have caused games to time up, especially, during
680             byo-yomi etc.
681
682 2010-01-22  Daigo Moriwaki <daigo at debian dot org>
683
684         * [shogi-server]
685           - Experimental feature: support handicapped games.
686             Game names that have the following prefixes are recognized as
687             handicapped games. Turn symbols "+" and "-" mean Uwate (expert)
688             and Shitate (beginner) respectively (i.e. Uwate players first).
689             "*" is not available. 
690             - hclance_
691             - hcbishop_
692             - hcrook_
693             - hcrooklance_
694             - hc2p_
695             - hc4p_
696             - hc6p_
697             - hc10p_
698
699 2010-01-16  Daigo Moriwaki <daigo at debian dot org>
700
701         * [shogi-server]
702           - shogi_server/command.rb, test/TC_command.rb
703             Proposal implementation of a new command called MONITOR2{ON,OFF}.
704             When the MONITOR2ON command is issued by a player, the server
705             immediately sends the player the entire contents of a record
706             file of the game, i.e. history of moves and so on, at that time.
707             Then, the server will forward subsequent moves like they are
708             appended to the record file.
709           - Behavior changed: A player monitoring a game with MONITORON will
710             not receive Game#show again when a gaming player resigns (:toryo).
711
712 2010-01-10  Daigo Moriwaki <daigo at debian dot org>
713
714         * Converted the repository from Subversion to Git.
715
716 2009-12-26 Daigo Moriwaki <daigo at debian dot org> 
717
718         * [shogi-server]
719           - The server can now provide multiple floodgate modes such as
720             floodgate-900-0 and floodgate-3600-0.
721
722 2009-12-25 Daigo Moriwaki <daigo at debian dot org>
723
724         * [shogi-server]
725           - shogi-server: The command line option --floodgate-history has
726             been deprecated. The server will decide history file names such
727             as 'floodgate_history_900_0.yaml' and
728             'floodgate_history_3600_0.yaml', and then put them in the top
729             directory.
730
731 2009-12-20 Daigo Moriwaki <daigo at debian dot org>
732
733         * [shogi-server]
734           - shogi_server/player.rb: Added new methods: is_human? and
735             is_computer?. 
736             A human player is recommended to use a name ending with '_human'.  
737             ex. 'hoge_human', 'hoge_human@p1'
738           - shogi_server/pairing.rb: Added a new class:
739             StartGameWithoutHumans, which tries to make pairs trying to
740             avoid a human-human match. This is now enabled instead of the
741             previous class: StartGame.
742           - shogi-server, shogi_server/league/floodgate.rb:
743             Changed the argument of Floodgate.new.
744
745 2009-12-04 Daigo Moriwaki <daigo at debian dot org>
746
747         * [shogi-server]
748           - The HUP signal is not supported by Ruby on Windows.
749
750 2009-11-11 Daigo Moriwaki <daigo at debian dot org>
751
752         * [mk_rate]
753           - Added a new command line option: --base-date. You can specify a
754             base date to calculate rating scores. Games in the `future' are
755             ignored for the calculation.
756
757 2009-11-10 Daigo Moriwaki <daigo at debian dot org>
758
759         * [shogi-server]
760           - The server logs a result of each game to a file named '00LIST',
761             which will be used to generate players.yaml. If the file does
762             not exist, the server will create one automatically.
763             Instruction to use the game result list file:
764             1. Make a list of game results from existing CSA files with
765                mk_game_results
766                % ./mk_game_results dir_of_csa_files > 00LIST
767             2. Run the server. It appends a result of each game to
768                '00LIST' when the game finishes.
769             3. From the list of game results, calculate rating scores of
770                players.
771                % ./mk_rate 00LIST > players.yaml
772
773 2009-11-08 Daigo Moriwaki <daigo at debian dot org>
774
775         * [mk_rate]
776           - Split a pre-process collecting game results from csa files into
777             a new command, mk_game_results. Now, Generating players.yaml
778             requires two steps as follows:
779               % ./mk_game_results dir_of_csa_files > 00LIST
780               % ./mk_rate 00LIST > players.yaml
781               or
782               % ./mk_game_results dir_of_csa_files | ./mk_rate > players.yaml 
783             (Closes: #19454)
784
785 2009-08-06 Daigo Moriwaki <daigo at debian dot org>
786
787         * [shogi-server]
788           - A experimental new feature, codenamed Buoy: it allows players to
789             play a game starting with a specified position. First, a player
790             sets a buoy game with moves to a specific position. Then, two
791             players can play a new game with the game name.
792             New commands:
793             + %%SETBUOY <game_name> <moves> [count]
794               Set a new buoy game.
795               ex. %%SETBUOY buoy_foo-900-0 +7776FU 10
796               ex. %%SETBUOY buoy_foo-1500-0 +7776FU-3334FU
797               - game_name is a valid game name with a prefix "buoy_".
798               ex. buoy_foo-900-0
799               - moves are initial moves from the Hirate position to a
800               specific position that you want to start with.
801               ex. +7776FU-3334FU+8786FU
802               - count is an optional attribute to tell how many times the
803               game can be played (default 1). The count is decremented
804               when the game finishes. If the count reaches zero, the buoy
805               game is removed automatically by the server.
806               ex. 10
807             + %%DELETEBUOY <game_name>
808               Delete a buoy game. The only owner who set up the game is
809               allowed to delete it.
810               ex. %%DELETEBUOY buoy_foo-900-0
811               - game_name is the buoy game name that was created.
812             + %%GETBUOYCOUNT <game_name>
813               Show a current count of the buoy game or -1 for non-existing
814               games.
815
816
817 2009-07-11 Daigo Moriwaki <daigo at debian dot org>
818
819         * [shogi-server]
820           - shogi_server/command.rb: refactored commands out of player.rb.
821
822 2009-06-18 Daigo Moriwaki <daigo at debian dot org>
823
824         * [shogi-server]
825           - An empty floodgate_history.yaml caused a server error. This
826             issue has been fixed. 
827             (Closes: #15124)
828
829 2009-06-17 Daigo Moriwaki <daigo at debian dot org>
830
831         * [shogi-server]
832           - If a new game matched between two players is not started within
833             a certain time (default 120 seconds) (i.e. the agree_waiting or
834             start_waiting state lasts too long), the Server REJECTs the game.
835             (Closes: #14425)
836
837 2009-06-15 Daigo Moriwaki <daigo at debian dot org>
838
839         * [shogi-server]
840           - When a Gote player AGREEd a new game and then a Sente player
841             logged out (LOGOUT), the Gote incorrectly received a LOGOUT message 
842             from the server. Since Gote's state was not AGREEd or STARTed yet,
843             the Gote should be REJECTed. This issue has been fixed. 
844             (Closes: #17335)
845
846 2009-06-14 Daigo Moriwaki <daigo at debian dot org>
847
848         * [shogi-server]
849           - The Board could not recognize a certain pattern of
850             Oute-Sennichite. This issue has been fixed.
851             (Closes: #13966)
852
853 2009-03-22 Daigo Moriwaki <daigo at debian dot org>
854
855         * [utils/correct-bug14635.rb]
856           - Added a new file. This program corrects illegal lines introduced
857             by the #14635 bug.
858
859 2009-03-07 Daigo Moriwaki <daigo at debian dot org>
860
861         * [csa-file-filter]
862           - Improved performance.
863
864 2009-02-15 Daigo Moriwaki <daigo at debian dot org>
865
866         * [shogi-server]
867           - A duplicated comment that is the one of the previous (or older)
868             move might be erroneously recorded in a csa file. This issue has 
869             been fixed. (Closes: #15080)
870
871 2009-02-11 Daigo Moriwaki <daigo at debian dot org>
872
873         * [utils/csa-filter.rb]
874           - Added a new file. This program filters CSA files.
875
876 2009-02-01 Daigo Moriwaki <daigo at debian dot org>
877
878         * [shogi-server]
879           - The shogi-server records csa files of games in an illegal
880             format. This issue has been fixed. (Closes: #14635)
881           - A ##[MONITOR] command for showing a game result such as %TORYO
882             was not correct. This issue has been fixed.  
883
884 2009-01-13 Daigo Moriwaki <daigo at debian dot org>
885
886         * [shogi-server]
887           - It failed to proccess a game result, OuteKaihiMoreWin where a
888             checked king does not escape. This issue has been fixed.
889
890 2009-01-02 Daigo Moriwaki <daigo at debian dot org>
891
892         * [shogi-server]
893           - shogi_server/timeout_queue.rb: the timeout parameter of the
894             constructor was not respected erroneously. This issue
895             has been fixed.
896           - shogi_server/players.rb: When a player was finishing with its
897             write socket broken, there was a chance that the thread of the
898             player in the giant lock had to wait for a long time (about 20
899             seconds), which might cause threads of other players stop and 
900             time out. (Closes: #14469)
901
902 2008-12-30 Daigo Moriwaki <daigo at debian dot org>
903
904         * [mk_html]
905           - Added a new option: --footer filename, which inserts contents of 
906             the filename at the bottom of a generated page. A text specific to 
907             wdoor should be written by using this option. 
908             (Closes: #14470)
909           - It does no more depend on RDoc. RDoc::usage does not work well
910             (due to RDoc).
911
912 2008-12-28 Daigo Moriwaki <daigo at debian dot org>
913
914         * [mk_rate]
915           - Check kifu files more carefully so that files that contain
916             incomplete records are skipped.
917           - mk_rate might have failed to alloc due to out of memory. Now it
918             consumes less memory (about 200MB instead of 2GB).
919           - File names can be put into STDIN instead of specifying directory
920             names in command line arguments.
921         * [csa-file-filter]
922           - New file. It filters kifu files and is of use for a pre-filter
923             of mk_rate.
924
925 2008-12-13 Daigo Moriwaki <daigo at debian dot org>
926
927         * [shogi-server]
928           - Improved an existance check and etc. of directories specified
929             by command line options, especially in case of the daemon mode. 
930             (Closes: #14244)
931           - A rotated log file is moved to $topdir/YYYY/MM/DD.
932             (Closes: #14245)
933
934 2008-11-27 Daigo Moriwaki <daigo at debian dot org>
935
936         * [shogi-server]
937           - Added sample/*.sh for command line samples.
938
939 2008-11-24 Daigo Moriwaki <daigo at debian dot org>
940
941         * [shogi-server]
942           - Added a new option --floodgate-history, which allows users to
943             specify a file name that stores the records of games. The
944             records are taken care of when games are matched.
945
946 2008-10-18 Daigo Moriwaki <daigo at debian dot org>
947
948         * [utils/eval_graph.rb]
949           - Display time control graphs as well.
950             Thanks to Nishimura-san for this idea.
951             (Closes: #13678)
952
953 2008-10-08 Daigo Moriwaki <daigo at debian dot org>
954
955         * [shogi-server]
956           - Ruby 1.8.7 (or later) must be used. Ruby 1.8.6 is not supported.
957           - Daemon mode is available.
958           - shogi_server/piece_ky.rb is again merged with
959             shogi_server/piece.rb, then has been removed.  
960           - Added a test case, TC_usi.rb.
961
962 2008-06-30 Daigo Moriwaki <daigo at debian dot org>
963
964         * [shogi-server]
965           - Added a new option --player-log-dir, which allows users to log
966             messages that are received or sent to the wire.
967
968 2008-06-28 Daigo Moriwaki <daigo at debian dot org>
969
970         * [shogi-server]
971           - A rating comment line is now written before the first move in a
972             record file instead of after the last move, which allows other
973             applications watching a game to recognize players in the middle 
974             of the game. (Closes #12821)
975           - If a player, including a monitor, stuck at the time of sending
976             messages to the wire, which means that the giant lock was locked,
977             it might have prevented other players from processing until
978             timeout occurred. This issue has been fixed. (Closes #12555)
979
980 2008-06-27 Daigo Moriwaki <daigo at debian dot org>
981
982         * [shogi-server]
983           -  Pairing players might not have shuffled players because of
984              poor shuffling algorithm. This issue has been fixed.
985              (Closes: #12661)
986
987 2008-06-25 Daigo Moriwaki <daigo at debian dot org>
988
989         * [players_graph.rb]
990           - Check invalid arguments. (Closes: #12856)
991
992 2008-06-23 Daigo Moriwaki <daigo at debian dot org>
993
994         * [mk_rate]
995           - Added a new option: --fixed-rate and --fixed-rate-player
996             whose rate always results in that rate. (Closes: #12800)
997
998 2008-06-06 Daigo Moriwaki <daigo at debian dot org>
999
1000         * [shogi-server]
1001           - The source has been splited to multiple sub files.
1002           - The program now depends on rubygems and activesupport.
1003           - The program can reload the source files on the flight, by
1004             sending a HUP signal to the server.
1005           - The server log will be rotated daily.
1006
1007 2008-05-18 Daigo Moriwaki <daigo at debian dot org>
1008
1009         * [shogi-server]
1010           - Last game results (win or lose) of x1 players were not
1011             available on the next game. This issue has been fixed.
1012             Thanks to Tomoyuki Kaneko for debugging.
1013           - For draw games, "'rating" line in a .csa file was 
1014             wrong (meaningless). This issue has been fixed.
1015
1016 2008-05-16 Daigo Moriwaki <daigo at debian dot org>
1017
1018         * [news]
1019           - The repository has been converted from CVS to Subversion.
1020
1021 2008-05-13 Daigo Moriwaki <daigo at debian dot org>
1022
1023         * [shogi-server]
1024           - Floodgate's thread could cause an error when players.yaml was
1025             cleared by another program (mk_rate). This issue has been 
1026             fixed.
1027           - Give default values to BasicPlayer, which fixed undefined 
1028             method error in Pairing.
1029
1030 2008-05-10 Daigo Moriwaki <daigo at debian dot org>
1031
1032         * [shogi-server]
1033           - The server could not recognize uchifuzume as an illegal move.
1034             This bug has been fixed.
1035           - The server crashed by an undefined method error.
1036             This issue has been fixed.
1037
1038 2008-05-05 Daigo Moriwaki <daigo at debian dot org>
1039
1040         * [shogi-server]
1041           - .csa files will be located in a sub directory such as
1042             "2008/05/05/*.csa". These days, we have many games in a day. 
1043             This change will help users browse a file list.
1044
1045 2008-05-03 Daigo Moriwaki <daigo at debian dot org>
1046
1047         * [mk_html]
1048           - Show players who have accessed in the last 30 minutes with 
1049             different colors.
1050
1051 2008-04-22 Daigo Moriwaki <daigo at debian dot org>
1052
1053         * [mk_html]
1054           - When YSS was not rated on the wdoor mode, wrong rate24 scores
1055             were displayed. This issue has been fixed. Now YSS absence 
1056             results in "N/A".
1057
1058 2008-04-21 Daigo Moriwaki <daigo at debian dot org>
1059
1060         * [mk_rate]
1061           - The half-life period is now configurable.
1062             ex $ ./mk_rate --half-life 14 --half-life-ignore 7 <records>
1063
1064 2008-04-12 Daigo Moriwaki <daigo at debian dot org>
1065
1066         * [shogi-server]
1067           - Renamed variables (@id) since they caused Ruby's warning.
1068
1069 2008-04-11 Daigo Moriwaki <daigo at debian dot org>
1070
1071         * [shogi-server]
1072           - Improved a way to handle diferred moves (2008-03-24's change),
1073             based on Tomoyuki Kaneko's patch.
1074
1075 2008-04-01 Daigo Moriwaki <daigo at debian dot org>
1076
1077         * [shogi-server]
1078           - An incorrect LOGIN crashed the server. This issue has been
1079             fixed.
1080
1081 2008-03-24 Daigo Moriwaki <daigo at debian dot org>
1082
1083         * [shogi-server]
1084           - Converting characters for comments in moves caused an error. This 
1085             issue has been fixed.
1086           - If a player moves in the opponent's turn, it is illegal. But the
1087             current CSA protocol does not clearly define a way to tell so to 
1088             the players. This shogi-server internally keeps such a move in a
1089             buffer and replay it when the player of the move gets his/her 
1090             turn.
1091
1092 2008-03-16 Daigo Moriwaki <daigo at debian dot org>
1093
1094         * [shogi-server]
1095           - Erroneously, Board#to_s's current player was always Black.
1096             It caused wrong determination of sennichite since it did not
1097             care about the current player of a state. This has been fixed.
1098             Thanks Takada-san for reporting this bug.
1099
1100 2008-03-10 Daigo Moriwaki <daigo at debian dot org>
1101
1102         * [util/players-graph.rb]
1103           - Applied Kaneko-san's patch, which also shows expected-rate24
1104             rates.
1105           - Small PNG gets smaller.
1106
1107 2008-03-08 Daigo Moriwaki <daigo at debian dot org>
1108
1109         * [mk_html]
1110         - Added an option --wdoor. In this mode, a rate expected at Shogi
1111           Club 24 is calculated from YSS's rating (he is 2400 now). 
1112
1113 2008-03-04 Daigo Moriwaki <daigo at debian dot org>
1114
1115         * [mk_rate]
1116           - If the computed ratings do not stabilize, then mk_rate aborts.
1117               $ ./mk_rate dir && ./mk_rate dir > players.yaml 
1118             can avoid rewriting the invalid ratings to the file.
1119
1120 2008-02-23 Daigo Moriwaki <daigo at debian dot org>
1121
1122         * [shogi-server]
1123           - A comment is converted to EUC-JP and then written in a log.
1124             Note that this conversion guesses the input encoding. Clients
1125             are recommended to send EUC-JP compatible strings to the
1126             server.
1127
1128 2008-02-21 Daigo Moriwaki <daigo at debian dot org>
1129
1130         * [util/players-graph.rb]
1131           - Released. Draw a chart for a player's rating score.
1132
1133 2008-02-17 Daigo Moriwaki <daigo at debian dot org>
1134
1135         * [shogi-server]
1136           - An illegal teban specified for Floodgate login could crash the
1137             server. This issue has been fixed.
1138
1139 2008-02-16 Daigo Moriwaki <daigo at debian dot org>
1140
1141         * [shogi-server]
1142           - Thread.abort_on_exception is now false, meaning that 
1143             a thread's abort does not affect the others. 
1144           - The uchifuzume check did not generate promoting moves, which
1145             could crash the server with illegal moves. This issue has
1146             been fixed.
1147
1148 2008-02-14 Daigo Moriwaki <daigo at debian dot org>
1149
1150         * [shogi-server]
1151           - Added a new pairing variation, Swiss-like style. Winners at the
1152             previous games (his/her point of view, not the server's) are 
1153             paired first, and then the others are matched. This is the 
1154             default option now.
1155           - Pairing classes are located in a separate source file,
1156             pairing.rb. The file is 'load'ed each time to be used,
1157             meaning that modifying the code will be applied to a running
1158             server.
1159           - You can specify a single player who will be out of pairing
1160             when there are odd players waiting for Floodgate.
1161
1162 2008-02-13 Daigo Moriwaki <daigo at debian dot org>
1163
1164         * [shogi-server]
1165           - When there are odd players wating for Floodgate, the random
1166             pairing deletes the player who has ever played the most games.
1167
1168 2008-02-08 Daigo Moriwaki <daigo at debian dot org>
1169
1170         * [ml_html]
1171           - For the Not-Yet-Rated group, those who have not connected
1172             recently are not listed.
1173         * [shogi-server]
1174           - Floodgate's thread checks the current time each 10 secs.
1175
1176 2008-02-05 Daigo Moriwaki <daigo at debian dot org>
1177
1178         * [mk_rate] [mk_html]
1179           - Display not-yet-rated players as well.
1180         * [mk_html]
1181           - Use Yahoo! UI Library.
1182
1183 2008-02-04 Daigo Moriwaki <daigo at debian dot org>
1184
1185         * [shogi-server] [webserver]
1186           - In the daemon mode, if the specified directory was a relative
1187             path, the server could fail to start with a permission denied
1188             error. This issue has been fixed. The path is interpreted as 
1189             an absolute path before switching to daemon. 
1190           - In the daemon mode, a wrong process id was written in 
1191             '--pid-file'. This issue has been fixed. Also, the pid file
1192             will be removed when the server shuts down.
1193
1194 2008-02-03 Daigo Moriwaki <daigo at debian dot org>
1195
1196         * [shogi-server]
1197           - Game names that are recognized as the floodgate mode are now 
1198             /^floodgate-\d+-\d+$/.
1199           - Floodgate could not schedule the next time when it was the next
1200             day. This issue has been fixed.
1201
1202 2008-02-02 Daigo Moriwaki <daigo at debian dot org>
1203
1204         * [shogi-server]
1205           - Implemented a new feature, Floodgate mode, for covenience with
1206             public rating games. Now there is a special game "wdoor-900-0".
1207             Matching players for that game is scheduled each 30 minitues.
1208
1209 2007-11-03 Daigo Moriwaki <daigo at debian dot org>
1210
1211         * [mk_rate]
1212          - Support Ruby 1.8.6 patch level 111 (or higher) and GSL 1.10 (or higher).
1213            It may not work with lower verions. 
1214
1215 2007-09-06 Daigo Moriwaki <daigo at debian dot org>
1216
1217         * [shogi-server]
1218           - The logic to detect Oute-Sennichite was not complete. Both players
1219             (checking side and escaping side) may cause Oute-Sennichite. The old
1220             logic only cared for the checking player. This issue has been fixed.
1221
1222 2007-06-16  Daigo Moriwaki <daigo at debian dot org>
1223
1224         * [webserver]
1225           - Initial version. This web server is an interface between HTTP and
1226             shogi-server. Shogi-server commands will be available over HTTP. As
1227             of now %%LIST and %%WHO commands are supported.
1228         * [mk_rate]
1229           - Bumped up GAME_LIMIT (from 10) to 15 because the calculation of
1230             rates sometimes went wrong (infinite values).
1231
1232 2007-04-21  Daigo Moriwaki <daigo at debian dot org>
1233
1234         * [shogi-server]
1235           - Implemented `CHALLENGE' command, and the server will respond with
1236             `CHALLENGE ACCEPTED'. Note that this command is dummy for this server
1237             because it is only available for CSA's official testing server and does
1238             not belong to the CSA standard protocol.  Therefor, when clients receive
1239             `CHALLENGE ACCEPTED' from this server, they must ignore it.
1240           - Show revision in a start up message.
1241
1242 2007-04-01  Daigo Moriwaki <daigo at debian dot org>
1243
1244         * [shogi-server]
1245           - Implemented one of the keepalive protocol in CSA protocol; If clients
1246             send LF, the server sends back LF.
1247           - More care for socket errors.
1248
1249 2007-03-27  Daigo Moriwaki <daigo at debian dot org>
1250
1251         * [mk_rate] When there were too few games to rate players (i.e. no
1252           player to rate), mk_rate caused an error. Now it no longer shows
1253           the error.
1254
1255 2007-03-10  Daigo Moriwaki <daigo at debian dot org>
1256
1257         * [mk_html] Popup shows additional information.
1258
1259 2007-03-02  Daigo Moriwaki <daigo at debian dot org>
1260
1261         * [shogi-server]
1262           - Use WEBrick for server framework.
1263           - Daemon mode is available.
1264
1265 2007-02-26  Daigo Moriwaki <daigo at debian dot org>
1266
1267         * [shogi-server]
1268           - Failed to show usage. This issue has been fixed. 
1269           - Initial start of the server failed beacause of empty players.yaml.
1270             This issues has been fixed.
1271
1272 2007-02-18  Daigo Moriwaki <daigo at debian dot org>
1273
1274         * [mk_html]
1275           - Show groups in the order specified in players.html.
1276           - Players who gamed recently have a background color.
1277         * [mk_rate]
1278           - Implemented half-life effect. Numbers of win/lose decrease by this effect.
1279
1280 2006-11-26  Daigo Moriwaki <daigo at debian dot org>
1281
1282         * [shogi-server] Sente (gote) was able to move gote's (sente's) hand.
1283           That move should be illegal. This issue has been fixed.
1284
1285 2006-11-01  Daigo Moriwaki <daigo at debian dot org>
1286
1287         * [mk_rate] Skip "abnormal" games, which were finished because of
1288           network failure or communication error.  Recently some programs seem
1289           to have a lot of tries to connect to the Shogi Server at wdoor for
1290           debugging. We should ignore such games for a while to get a meaningful
1291           ratings.
1292
1293 2006-10-30  Daigo Moriwaki <daigo at debian dot org>
1294
1295         * [mk_rate][mk_html]
1296           - Put players into "connected" groups in order to
1297             show a correct, meaningful rating. In the group, each player has at
1298             least a game with other players.
1299           - The format of players.yaml was updated.
1300         * [shogi-server] Followed the new format of players.yaml.
1301
1302 2006-10-08  Daigo Moriwaki <daigo at debian dot org>
1303
1304         * [mk_rate] Corrected making win_loss_matrix.
1305
1306 2006-10-02  Daigo Moriwaki <daigo at debian dot org>
1307
1308         * [mk_rate] players who never win or lose are not rated in order
1309           the calculation to complete.
1310
1311 2006-09-30  Daigo Moriwaki <daigo at debian dot org>
1312
1313         * [shogi-server] The CSA mode supports the trip in a password.
1314
1315 2006-09-22  Daigo Moriwaki <daigo at debian dot org>
1316
1317         * [shogi-server] Refactored the login procedures.
1318
1319 2006-09-21  Daigo Moriwaki <daigo at debian dot org>
1320
1321         * [mk_rate] It failed parse draw games. Now this bug has been fixed.
1322         * [mk_html] Add CSS to look better.
1323
1324 2006-09-15  Daigo Moriwaki <daigo at debian dot org>
1325
1326         * [shogi-server]
1327           - Remove the trip in a password. Now the password is hashed.
1328         * [mk_rate]
1329           - Support @NORATE syntax in a name, which avoids the player is
1330             rated.
1331
1332 2006-09-09  Daigo Moriwaki <daigo at debian dot org>
1333
1334         * [shogi-server]
1335           - Support a new command, %%VERSION. It shows the server's revision#.
1336
1337 2006-09-07  Daigo Moriwaki <daigo at debian dot org>
1338
1339         * [shogi-server]
1340           - Re-design: trip is now a suffix of the password, not name.
1341           - Simplified the output of %%RATING.
1342         * [mk_rate]
1343           - Support "@" indentificaton in a name; players with same
1344             before-@-names are mapped to one.
1345
1346 2006-09-05  Daigo Moriwaki <daigo at debian dot org>
1347
1348         * [mk_rate] Fix a bug. It solves the correct rate.
1349
1350 2006-08-18  Daigo Moriwaki <daigo at debian dot org>
1351
1352         * [mk_rate] Re-design. 
1353           - Correct the equations.
1354           - Apply deaccelerated Newton method.
1355
1356 2006-08-16  Daigo Moriwaki <daigo at debian dot org>
1357
1358         * [mk_rate]
1359           - Fix a bug. Now it can see black/white players in a csa file.
1360         * [shogi-server]
1361           - Add a space in the output of %%RATING.
1362
1363 2006-08-14  Daigo Moriwaki <daigo at debian dot org>
1364
1365         * [mk_rate] Record numbers of win/loss games.
1366         * Add mk_html, which generates html from players.yaml
1367         * Fix test/test_board.rb. Now it works. 
1368         * Add test/TC_ALL.rb to run all test cases.
1369         * [shogi-server] Fix a bug. Now it can show %%RATING even if it has no
1370           rated player.
1371
1372 2006-08-11  Daigo Moriwaki <daigo at debian dot org>
1373         
1374         * Add mk_rate, which calculate rating scores.
1375
1376 2006-08-10  Daigo Moriwaki <daigo at debian dot org>
1377
1378         * Change the style of a comment line on the rated game.
1379
1380 2006-08-07  Daigo Moriwaki <daigo at debian dot org>
1381
1382         * Change the player id, which is now <name>+<hash_of_the_trip>.
1383         * Fix the max length of the login name with a trip.
1384         * Add a comment line about the rated game status in the CSA file.
1385         * Remove the rating system, which will be calculated by another
1386           program.
1387
1388 2006-08-01  Daigo Moriwaki <daigo at debian dot org>
1389
1390         * Add a command, %%RATING, to show a ranking sorted by rates.
1391
1392 2006-07-31  Daigo Moriwaki <daigo at debian dot org>
1393
1394         * Add a simple rating system.
1395
1396 2006-07-30  Daigo Moriwaki <daigo at debian dot org>
1397
1398         * Add a @move_counter in Board class, which is used by Shogi Viewer
1399           CGI.
1400
1401 2006-04-28  Daigo Moriwaki <daigo at debian dot org>
1402
1403         * Jishogi kachi declaration did not work. This bug has been fixed.
1404           Add debug lines to show a jishogi state.
1405
1406 2006-04-08  Daigo Moriwaki <daigo at debian dot org>
1407
1408         * Support CSA Protocol Version 1.1.
1409         * Change the declaration of Jishogi 1.1.
1410
1411 2006-03-10  Daigo Moriwaki <daigo at debian dot org>
1412
1413         * Kifu logs are always written in separate files.
1414         * Add a test case, test/TC_functional.rb
1415         * Some refactorings.
1416