OSDN Git Service

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