OSDN Git Service

[shogi-server] - shogi_server/{game,time_clock}.rb:
[shogi-server/shogi-server.git] / changelog
1 2013-09-08  Daigo Moriwaki <daigo at debian dot org>
2
3         * [shogi-server]
4           - shogi_server/{game,time_clock}.rb:
5             When StopWatchClock is used, "Time_Unit:" of starting messages
6             in CSA protocol supplies "1min".
7
8 2013-04-07  Daigo Moriwaki <daigo at debian dot org>
9
10         * [shogi-server]
11           - shogi_server/{game,time_clock}.rb:
12             Adds variations of thinking time calculation: ChessClock
13             (current) and StopWatchClock (new).
14             StopWatchClock, which is usually used at official games of human
15             professional players, is a clock where thiking time less than a
16             miniute is regarded as zero.
17             To select StopWatchClock, use a special game name with "060"
18             byoyomi time. ex. "gamename_1500_060".
19
20 2013-03-31  Daigo Moriwaki <daigo at debian dot org>
21
22         * [shogi-server]
23           - %%FORK command: %%FORK <source_game> [<new_buoy_game>] [<nth-move>]
24             The new_buoy_game parameter is now optional. If it is not
25             supplied, Shogi-server generates a new buoy game name from
26             source_game.
27           - command.rb: More elaborate error messages for the %%GAME command.
28
29 2013-02-23  Daigo Moriwaki <daigo at debian dot org>
30
31         * [shogi-server]
32           - New command: %%FORK <source_game> <new_buoy_game> [<nth-move>]
33             Fork a new game from the posistion where the n-th (starting from
34             one) move of a source game is played. The new game should be a
35             valid buoy game name. The default value of n is the position
36             where the previous position of the last one.
37             - The objective of this command: The shogi-server may be used as
38             the back end server of computer-human match where a human player
39             plays with a real board and someone, or a proxy, inputs moves to
40             the shogi-server. If the proxy happens to enter a wrong move,
41             with this command you can restart a new buoy game from the
42             previous stable position.
43             ex. %%FORK server-denou-14400-60+p1+p2+20130223185013 buoy_denou-14400-60
44
45 2012-12-30  Daigo Moriwaki <daigo at debian dot org>
46
47         * [shogi-server]
48           - Backported a5c94012656902e73e00f46e7a4c7004b24d4578:
49             test/TC_logger.rb depeneded on a specific directory where it was
50             running on. This issues has been fixed.
51           - Backported 87d145bd1f1a14a33f5f6fbc78b63a1952f1ca90 and
52             2df8c798aeb7f0e77735e893fd1370c2c6f15c4d:
53             shogi_server/floodgate.rb: Generating next time around the new
54             year day by reading configuration files did not work correctly.
55             This issue has been fixed.
56
57 2012-12-28  Daigo Moriwaki <daigo at debian dot org>
58
59         * [shogi-server]
60           - shogi_server/pairing.rb:
61             + There was a bug in the logic avoiding human-human match.
62               This issue has been fixed.
63             + Improved the logic avoiding human-human match. Human-human
64               matches will less likely happen.
65
66 2010-10-06  Daigo Moriwaki <daigo at debian dot org>
67
68         * [shogi-server]
69           - mk_rate: the usage was not updated.
70             Thanks to Hoki-san to report this issue.  (Closes: #23358)
71
72 2010-09-18  Daigo Moriwaki <daigo at debian dot org>
73
74         * [shogi-server]
75           - shogi_server/board.rb, game.rb: For hadicapped games, wrong
76             initial positions were delivered to players and monitors.  This
77             issue has been fixed. (Closes: #23245) 
78             Thanks to HIDETCHI for reporting the issue.
79
80 2010-09-05  Daigo Moriwaki <daigo at debian dot org>
81
82         * [shogi-server]
83           - shogi_server/login.rb: Enhanced the CSA Login mode.
84             Logging in the server with the CSA mode, users are now allowed to
85             specify a turn preference in an enhanced gamename string which
86             looks like <gamename>-<time>-<time>-<turn>. The first three 
87             parts are a regular game definition. The last "-<turn>"
88             part is optional. 
89             + Without -<turn> (i.e. same as the previous behavior), there
90             is no turn preference. A user's turn will be defined randomly. 
91             + <turn> is either "B" for black or "W" for white.
92
93 2010-09-04  Daigo Moriwaki <daigo at debian dot org>
94
95         * [shogi-server]
96           - shogi_server/{board,command,game,league,player}.rb
97             The Buoy behaivor is changed.
98             + Starting a buoy game, players are notified a starting game
99               position with the initial position and moves, instread of a
100               targeting position.
101             + Players are allowed to start buoy games with specific turns.
102               ex. %%GAME buoy_foo-1500-0 +
103
104 2010-08-05  Daigo Moriwaki <daigo at debian dot org>
105
106         * [shogi-server]
107           - shogi_server/command.rb: Prevent a possible password from be
108             logged in a log file when players send invalid LOGIN-like commands.
109             Thanks to Tomoyuki Kaneko for this idea.
110
111 2010-08-03  Daigo Moriwaki <daigo at debian dot org>
112
113         * [shogi-server]
114           - sample/{check_file.rb,check_time.rb,check_time2.rb,test_time.rb}:
115             Added new files to test an issue where mtime of log files was
116             earlier than system time.
117           - shogi_server/league/floodgate_thread.rb: SetupFloodgate#start
118             now returns an instance correctly.
119           - ../shogi_server.rb, ../shogi_server/util.rb: Refactored
120             mkdir_for to Mkdir.mkdir_for.
121           - ../shogi_server/game.rb: mkdir_p will be performed in a global
122             mutex of ShogiServer::Mkdir.
123
124 2010-07-25  Daigo Moriwaki <daigo at debian dot org>
125
126         * [shogi-server]
127           - shogi_server/command.rb: 
128             + For an unknown error command log, an empty line is no longer logged.
129             + Commands specific to 81Dojo, starting with '%%%', are just
130               ignored instead of unknown command errors.
131           - shogi_server.rb: 
132             + Refactoring. Added test/TC_logger.rb to test
133               ShogiServer::Logger class.
134             + Fixed race condition: creating a new directory to archive
135               logs may have caused race condition, which ended up with
136               making the server unavailable. This issue has been fixed. 
137           - shogi-server:
138             + Improved fault tolerance of the server.
139
140 2010-07-23  Daigo Moriwaki <daigo at debian dot org>
141
142         * [shogi-server]
143           - shogi_server/league/floodgate_thread.rb: When the server run
144             with DEBUG mode, it ended up with an undefined variable error. 
145             This issue has been fixed.
146
147 2010-07-17  Daigo Moriwaki <daigo at debian dot org>
148
149         * [shogi-server]
150           - shogi_server.rb, shogi_server/board.rb, shogi_server/move.rb
151             - Refactoring: Board can now move_to() and move_back() a move
152               instread of deep_copy().
153
154 2010-07-11  Daigo Moriwaki <daigo at debian dot org>
155
156         * [shogi-server]
157           - shogi_server/player.rb: Set initial values to BasicPlayer's
158             instance variables.
159           - shogi_server/league.rb: Improved performance of
160             Persistant#get_players. It took about 20 seconds for a large
161             size of players (5,300 lines in players.yaml). Now it completes in an
162             instance.
163
164 2010-06-22  Daigo Moriwaki <daigo at debian dot org>
165
166         * [shogi-server]
167           - A new command line option: 
168               --floodgate-names GameStringA[,GameStringB[,...]]
169             where a game string should be a valid game name such as
170             floodgate-900-0.  
171             .
172             Note: Without this option, no floodgate games are started. If
173             you want floodgate-900-0 to run, which was default enabled in
174             previous versions, you need to spefify the game name in this new
175             option.
176           - Floodgate time configuration file:
177             You need to set starting times of floodgate groups in
178             configuration files under the top directory. Each floodgat
179             e group requires a correspoding configuration file named
180             "<game_name>.conf". The file will be re-read once just after a
181             game starts. 
182             .
183             For example, a floodgate-3600-30 game group requires
184             floodgate-3600-30.conf.  However, for floodgate-900-0 and
185             floodgate-3600-0, which were default enabled in previous
186             versions, configuration files are optional if you are happy with
187             defualt time settings.
188             File format is:
189               Line format: 
190                 # This is a comment line
191                 DoW Time
192                 ...
193               where
194                 DoW := "Sun" | "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" |
195                        "Sunday" | "Monday" | "Tuesday" | "Wednesday" | "Thursday" |
196                        "Friday" | "Saturday" 
197                 Time := HH:MM
198              
199               For example,
200                 Sat 13:00
201                 Sat 22:00
202                 Sun 13:00
203
204 2010-06-01  Daigo Moriwaki <daigo at debian dot org>
205
206         * [shogi-server]
207           - shogi_server/command.rb: Fixed an issue that MONITOR2OFF did not
208             work. Thanks to HIDECHI and koudayu.
209
210 2010-05-10  Daigo Moriwaki <daigo at debian dot org>
211
212         * [shogi-server]
213           - test/*.rb: Improved performance and stability of tests
214           - shogi_server/player.rb: Help the write_thread to terminate
215
216 2010-05-06  Daigo Moriwaki <daigo at debian dot org>
217
218         * [mk_rate]
219           - Previously mk_rate did not count in draw games. Now a draw game
220             is considered to weight 0.5 win and 0.5 loss. Respect
221             Inaniwa-shogi which strategically aims to draw.
222           - a new command line option, --skip-draw-games. In this mode, draw
223             games are just ignored as mk_rate previously did.
224
225 2010-04-25  Daigo Moriwaki <daigo at debian dot org>
226
227         * [shogi-server]
228           - shogi_server/player.rb:
229             Log a warning message in a case that a player closes a
230             connection suddenly.
231
232 2010-04-13  Daigo Moriwaki <daigo at debian dot org>
233
234         * [shogi-server]
235           - shogi_server/command.rb:
236             Equality of MonitorHandler class was wrong. %%MONITOROFF and
237             %%MONITOR2OFF may cause unexpected behavior. This issue has been
238             fixed. Thanks to Kota Fujiwara for reporting.
239
240 2010-03-07  Daigo Moriwaki <daigo at debian dot org>
241
242         * [shogi-server]
243           - If two sequential moves from a player are identical, the last
244             one will be ignored and a game is in play. This situation might
245             happen with human players, especially on slow network,
246             impatiently sending a move twice. 
247
248 2010-02-27  Daigo Moriwaki <daigo at debian dot org>
249
250         * [shogi-server]
251           - The server now provides more accurate time control. Previouslly,
252             a player's thinking time included a time waiting to get the giant
253             lock. This may have caused games to time up, especially, during
254             byo-yomi etc.
255
256 2010-01-22  Daigo Moriwaki <daigo at debian dot org>
257
258         * [shogi-server]
259           - Experimental feature: support handicapped games.
260             Game names that have the following prefixes are recognized as
261             handicapped games. Turn symbols "+" and "-" mean Uwate (expert)
262             and Shitate (beginner) respectively (i.e. Uwate players first).
263             "*" is not available. 
264             - hclance_
265             - hcbishop_
266             - hcrook_
267             - hcrooklance_
268             - hc2p_
269             - hc4p_
270             - hc6p_
271             - hc10p_
272
273 2010-01-16  Daigo Moriwaki <daigo at debian dot org>
274
275         * [shogi-server]
276           - shogi_server/command.rb, test/TC_command.rb
277             Proposal implementation of a new command called MONITOR2{ON,OFF}.
278             When the MONITOR2ON command is issued by a player, the server
279             immediately sends the player the entire contents of a record
280             file of the game, i.e. history of moves and so on, at that time.
281             Then, the server will forward subsequent moves like they are
282             appended to the record file.
283           - Behavior changed: A player monitoring a game with MONITORON will
284             not receive Game#show again when a gaming player resigns (:toryo).
285
286 2010-01-10  Daigo Moriwaki <daigo at debian dot org>
287
288         * Converted the repository from Subversion to Git.
289
290 2009-12-26 Daigo Moriwaki <daigo at debian dot org> 
291
292         * [shogi-server]
293           - The server can now provide multiple floodgate modes such as
294             floodgate-900-0 and floodgate-3600-0.
295
296 2009-12-25 Daigo Moriwaki <daigo at debian dot org>
297
298         * [shogi-server]
299           - shogi-server: The command line option --floodgate-history has
300             been deprectated. The server will decide history file names such
301             as 'floodgate_history_900_0.yaml' and
302             'floodgate_history_3600_0.yaml', and then put them in the top
303             directory.
304
305 2009-12-20 Daigo Moriwaki <daigo at debian dot org>
306
307         * [shogi-server]
308           - shogi_server/player.rb: Added new methods: is_human? and
309             is_computer?. 
310             A human player is recommened to use a name ending with '_human'.  
311             ex. 'hoge_human', 'hoge_human@p1'
312           - shogi_server/pairing.rb: Added a new class:
313             StartGameWithoutHumans, which tries to make pairs trying to
314             avoid a human-human match. This is now enabled instread of the
315             previous class: StartGame.
316           - shogi-server, shogi_server/league/floodgate.rb:
317             Changed the argument of Floodgate.new.
318
319 2009-12-04 Daigo Moriwaki <daigo at debian dot org>
320
321         * [shogi-server]
322           - The HUP signal is not supported by Ruby on Windows.
323
324 2009-11-11 Daigo Moriwaki <daigo at debian dot org>
325
326         * [mk_rate]
327           - Added a new command line option: --base-date. You can specify a
328             base date to calculate rating scores. Games in the `future' are
329             ignored for the calculation.
330
331 2009-11-10 Daigo Moriwaki <daigo at debian dot org>
332
333         * [shogi-server]
334           - The server logs a result of each game to a file named '00LIST',
335             which will be used to generate players.yaml. If the file does
336             not exist, the server will create one automatically.
337             Instruction to use the game result list file:
338             1. Make a list of game results from exisiting CSA files with
339                mk_game_results
340                % ./mk_game_results dir_of_csa_files > 00LIST
341             2. Run the server. It appends a result of each game to
342                '00LIST' when the game finishes.
343             3. From the list of game results, calculate rating scores of
344                players.
345                % ./mk_rate 00LIST > players.yaml
346
347 2009-11-08 Daigo Moriwaki <daigo at debian dot org>
348
349         * [mk_rate]
350           - Split a pre-process collecting game results from csa files into
351             a new command, mk_game_results. Now, Generating players.yaml
352             requires two steps as follows:
353               % ./mk_game_results dir_of_csa_files > 00LIST
354               % ./mk_rate 00LIST > players.yaml
355               or
356               % ./mk_game_results dir_of_csa_files | ./mk_rate > players.yaml 
357             (Closes: #19454)
358
359 2009-08-06 Daigo Moriwaki <daigo at debian dot org>
360
361         * [shogi-server]
362           - A experimental new feature, codenamed Buoy: it allows players to
363             play a game starting with a specified position. First, a player
364             sets a buoy game with moves to a specific position. Then, two
365             players can play a new game with the game name.
366             New commands:
367             + %%SETBUOY <game_name> <moves> [count]
368               Set a new buoy game.
369               ex. %%SETBUOY buoy_foo-900-0 +7776FU 10
370               ex. %%SETBUOY buoy_foo-1500-0 +7776FU-3334FU
371               - game_name is a valid game name with a prefix "buoy_".
372               ex. buoy_foo-900-0
373               - moves are initial moves from the Hirate position to a
374               spcific position that you want to start with.
375               ex. +7776FU-3334FU+8786FU
376               - count is an optional attribute to tell how many times the
377               game can be played (default 1). The count is decremented
378               when the game finishes. If the count reaches zero, the buoy
379               game is removed automatically by the server.
380               ex. 10
381             + %%DELETEBUOY <game_name>
382               Delete a buoy game. The only owner who set up the game is
383               allowed to delete it.
384               ex. %%DELETEBUOY buoy_foo-900-0
385               - game_name is the buoy game name that was created.
386             + %%GETBUOYCOUNT <game_name>
387               Show a current count of the buoy game or -1 for non-existing
388               games.
389
390
391 2009-07-11 Daigo Moriwaki <daigo at debian dot org>
392
393         * [shogi-server]
394           - shogi_server/command.rb: refactored commands out of player.rb.
395
396 2009-06-18 Daigo Moriwaki <daigo at debian dot org>
397
398         * [shogi-server]
399           - An emtpy floodgate_history.yaml caused a server error. This
400             issue has been fixed. 
401             (Closes: #15124)
402
403 2009-06-17 Daigo Moriwaki <daigo at debian dot org>
404
405         * [shogi-server]
406           - If a new game matched between two players is not started within
407             a certain time (default 120 seconds) (i.e. the agree_waiting or
408             start_waiting state lasts too long), the Server REJECTs the game.
409             (Closes: #14425)
410
411 2009-06-15 Daigo Moriwaki <daigo at debian dot org>
412
413         * [shogi-server]
414           - When a Gote player AGREEd a new game and then a Sente player
415             logged out (LOGOUT), the Gote incorrectly received a LOGOUT message 
416             from the server. Since Gote's state was not AGREEd or STARTed yet,
417             the Gote should be REJECTed. This issue has been fixed. 
418             (Closes: #17335)
419
420 2009-06-14 Daigo Moriwaki <daigo at debian dot org>
421
422         * [shogi-server]
423           - The Board could not recognize a certain pattern of
424             Oute-Sennichite. This issue has been fixed.
425             (Closes: #13966)
426
427 2009-03-22 Daigo Moriwaki <daigo at debian dot org>
428
429         * [utils/correct-bug14635.rb]
430           - Added a new file. This program corrects illegal lines introduced
431             by the #14635 bug.
432
433 2009-03-07 Daigo Moriwaki <daigo at debian dot org>
434
435         * [csa-file-filter]
436           - Improved performance.
437
438 2009-02-15 Daigo Moriwaki <daigo at debian dot org>
439
440         * [shogi-server]
441           - A duplicated comment that is the one of the previous (or older)
442             move might be erroneously recorded in a csa file. This issue has 
443             been fixed. (Closes: #15080)
444
445 2009-02-11 Daigo Moriwaki <daigo at debian dot org>
446
447         * [utils/csa-filter.rb]
448           - Added a new file. This program filters CSA files.
449
450 2009-02-01 Daigo Moriwaki <daigo at debian dot org>
451
452         * [shogi-server]
453           - The shogi-server records csa files of games in an illegal
454             format. This issue has been fixed. (Closes: #14635)
455           - A ##[MONITOR] command for showing a game result such as %TORYO
456             was not correct. This issue has been fixed.  
457
458 2009-01-13 Daigo Moriwaki <daigo at debian dot org>
459
460         * [shogi-server]
461           - It failed to proccess a game result, OuteKaihiMoreWin where a
462             checked king does not escape. This issue has been fixed.
463
464 2009-01-02 Daigo Moriwaki <daigo at debian dot org>
465
466         * [shogi-server]
467           - shogi_server/timeout_queue.rb: the timeout parameter of the
468             constructor was not respected erroneously. This issue
469             has been fixed.
470           - shogi_server/players.rb: When a player was finishing with its
471             write socket broken, there was a chance that the thread of the
472             player in the giant lock had to wait for a long time (about 20
473             seconds), which might cause threads of other players stop and 
474             time out. (Closes: #14469)
475
476 2008-12-30 Daigo Moriwaki <daigo at debian dot org>
477
478         * [mk_html]
479           - Added a new option: --footer filename, which inserts contents of 
480             the filename at the bottom of a genrated page. A text specific to 
481             wdoor should be written by using this option. 
482             (Closes: #14470)
483           - It does no more depend on RDoc. RDoc::usage does not work well
484             (due to RDoc).
485
486 2008-12-28 Daigo Moriwaki <daigo at debian dot org>
487
488         * [mk_rate]
489           - Check kifu files more carefully so that files that contain
490             incomplete records are skipped.
491           - mk_rate might have failed to alloc due to out of memory. Now it
492             consumes less memory (about 200MB instead of 2GB).
493           - File names can be put into STDIN instead of specifying directory
494             names in command line arguments.
495         * [csa-file-filter]
496           - New file. It filters kifu files and is of use for a pre-filter
497             of mk_rate.
498
499 2008-12-13 Daigo Moriwaki <daigo at debian dot org>
500
501         * [shogi-server]
502           - Improved an existance check and etc. of directories specified
503             by command line options, expecially in case of the daemon mode. 
504             (Closes: #14244)
505           - A lotated log file is moved to $topdir/YYYY/MM/DD.
506             (Closes: #14245)
507
508 2008-11-27 Daigo Moriwaki <daigo at debian dot org>
509
510         * [shogi-server]
511           - Added sample/*.sh for command line samples.
512
513 2008-11-24 Daigo Moriwaki <daigo at debian dot org>
514
515         * [shogi-server]
516           - Added a new option --floodgate-history, which allows users to
517             specify a file name that stores the records of games. The
518             records are taken care of when games are matched.
519
520 2008-10-18 Daigo Moriwaki <daigo at debian dot org>
521
522         * [utils/eval_graph.rb]
523           - Display time control graphs as well.
524             Thanks to Nishimura-san for this idea.
525             (Closes: #13678)
526
527 2008-10-08 Daigo Moriwaki <daigo at debian dot org>
528
529         * [shogi-server]
530           - Ruby 1.8.7 (or later) must be used. Ruby 1.8.6 is not supported.
531           - Daemon mode is available.
532           - shogi_server/piece_ky.rb is again merged with
533             shogi_server/piece.rb, then has been removed.  
534           - Added a test case, TC_usi.rb.
535
536 2008-06-30 Daigo Moriwaki <daigo at debian dot org>
537
538         * [shogi-server]
539           - Added a new option --player-log-dir, which allows users to log
540             messages that are received or sent to the wire.
541
542 2008-06-28 Daigo Moriwaki <daigo at debian dot org>
543
544         * [shogi-server]
545           - A rating comment line is now written before the first move in a
546             record file instead of after the last move, which allows other
547             applications watching a game to recognize players in the middle 
548             of the game. (Closes #12821)
549           - If a player, including a monitor, stuck at the time of sending
550             messages to the wire, which means that the giant lock was locked,
551             it might have prevented other players from processing until
552             timeout occurred. This issue has been fixed. (Closes #12555)
553
554 2008-06-27 Daigo Moriwaki <daigo at debian dot org>
555
556         * [shogi-server]
557           -  Pairing players might not have shuffled players because of
558              poor shuffling algorithm. This issue has been fixed.
559              (Closes: #12661)
560
561 2008-06-25 Daigo Moriwaki <daigo at debian dot org>
562
563         * [players_graph.rb]
564           - Check invalid arguments. (Closes: #12856)
565
566 2008-06-23 Daigo Moriwaki <daigo at debian dot org>
567
568         * [mk_rate]
569           - Added a new option: --fixed-rate and --fixed-rate-player
570             whose rate always results in that rate. (Closes: #12800)
571
572 2008-06-06 Daigo Moriwaki <daigo at debian dot org>
573
574         * [shogi-server]
575           - The source has been splited to multiple sub files.
576           - The program now depends on rubygems and activesupport.
577           - The program can reload the source files on the flight, by
578             sending a HUP signal to the server.
579           - The server log will be rotated daily.
580
581 2008-05-18 Daigo Moriwaki <daigo at debian dot org>
582
583         * [shogi-server]
584           - Last game results (win or lose) of x1 players were not
585             available on the next game. This issue has been fixed.
586             Thanks to Tomoyuki Kaneko for debugging.
587           - For draw games, "'rating" line in a .csa file was 
588             wrong (meaningless). This issue has been fixed.
589
590 2008-05-16 Daigo Moriwaki <daigo at debian dot org>
591
592         * [news]
593           - The repository has been converted from CVS to Subversion.
594
595 2008-05-13 Daigo Moriwaki <daigo at debian dot org>
596
597         * [shogi-server]
598           - Floodgate's thread could cause an error when players.yaml was
599             cleared by another program (mk_rate). This issue has been 
600             fixed.
601           - Give default values to BasicPlayer, which fixed undefined 
602             method error in Pairing.
603
604 2008-05-10 Daigo Moriwaki <daigo at debian dot org>
605
606         * [shogi-server]
607           - The server could not recognize uchifuzume as an illegal move.
608             This bug has been fixed.
609           - The server crashed by an undefined method error.
610             This issue has been fixed.
611
612 2008-05-05 Daigo Moriwaki <daigo at debian dot org>
613
614         * [shogi-server]
615           - .csa files will be located in a sub directory such as
616             "2008/05/05/*.csa". Thease days, we have many games in a day. 
617             This change will help users browse a file list.
618
619 2008-05-03 Daigo Moriwaki <daigo at debian dot org>
620
621         * [mk_html]
622           - Show players who have accessed in the last 30 minutes with 
623             different colors.
624
625 2008-04-22 Daigo Moriwaki <daigo at debian dot org>
626
627         * [mk_html]
628           - When YSS was not rated on the wdoor mode, wrong rate24 scores
629             were displayed. This issue has been fixed. Now YSS absence 
630             results in "N/A".
631
632 2008-04-21 Daigo Moriwaki <daigo at debian dot org>
633
634         * [mk_rate]
635           - The half-life period is now configurable.
636             ex $ ./mk_rate --half-life 14 --half-life-ignore 7 <records>
637
638 2008-04-12 Daigo Moriwaki <daigo at debian dot org>
639
640         * [shogi-server]
641           - Renamed variables (@id) since they caused Ruby's warning.
642
643 2008-04-11 Daigo Moriwaki <daigo at debian dot org>
644
645         * [shogi-server]
646           - Improved a way to handle diferred moves (2008-03-24's change),
647             based on Tomoyuki Kaneko's patch.
648
649 2008-04-01 Daigo Moriwaki <daigo at debian dot org>
650
651         * [shogi-server]
652           - An incorrect LOGIN crashed the server. This issue has been
653             fixed.
654
655 2008-03-24 Daigo Moriwaki <daigo at debian dot org>
656
657         * [shogi-server]
658           - Converting characters for comments in moves caused an error. This 
659             issue has been fixed.
660           - If a player moves in the opponent's turn, it is illegal. But the
661             current CSA protocol does not clearly define a way to tell so to 
662             the players. This shogi-server internally keeps such a move in a
663             buffer and replay it when the player of the move gets his/her 
664             turn.
665
666 2008-03-16 Daigo Moriwaki <daigo at debian dot org>
667
668         * [shogi-server]
669           - Erroneously, Board#to_s's current player was always Black.
670             It caused wrong determination of sennichite since it did not
671             care about the current player of a state. This has been fixed.
672             Thanks Takada-san for reporting this bug.
673
674 2008-03-10 Daigo Moriwaki <daigo at debian dot org>
675
676         * [util/players-graph.rb]
677           - Applied Kaneko-san's patch, which also shows expected-rate24
678             rates.
679           - Small PNG gets smaller.
680
681 2008-03-08 Daigo Moriwaki <daigo at debian dot org>
682
683         * [mk_html]
684         - Added an option --wdoor. In this mode, a rate expected at Shogi
685           Club 24 is calculated from YSS's rating (he is 2400 now). 
686
687 2008-03-04 Daigo Moriwaki <daigo at debian dot org>
688
689         * [mk_rate]
690           - If the computed ratings do not stabilize, then mk_rate aborts.
691               $ ./mk_rate dir && ./mk_rate dir > players.yaml 
692             can avoid rewriting the invalid ratings to the file.
693
694 2008-02-23 Daigo Moriwaki <daigo at debian dot org>
695
696         * [shogi-server]
697           - A comment is converted to EUC-JP and then written in a log.
698             Note that this conversion guesses the input encoding. Clients
699             are recommended to send EUC-JP compatible strings to the
700             server.
701
702 2008-02-21 Daigo Moriwaki <daigo at debian dot org>
703
704         * [util/players-graph.rb]
705           - Released. Draw a chart for a player's rating score.
706
707 2008-02-17 Daigo Moriwaki <daigo at debian dot org>
708
709         * [shogi-server]
710           - An illegal teban specified for Floodgate login could crash the
711             server. This issue has been fixed.
712
713 2008-02-16 Daigo Moriwaki <daigo at debian dot org>
714
715         * [shogi-server]
716           - Thread.abort_on_exception is now false, meaning that 
717             a thread's abort does not affect the others. 
718           - The uchifuzume check did not generate promoting moves, which
719             could crash the server with illegal moves. This issue has
720             been fixed.
721
722 2008-02-14 Daigo Moriwaki <daigo at debian dot org>
723
724         * [shogi-server]
725           - Added a new pairing variation, Swiss-like style. Winners at the
726             previous games (his/her point of view, not the server's) are 
727             paired first, and then the others are matched. This is the 
728             default option now.
729           - Pairing classes are located in a separate source file,
730             pairing.rb. The file is 'load'ed each time to be used,
731             meaning that modifying the code will be applied to a running
732             server.
733           - You can specify a single player who will be out of pairing
734             when there are odd players waiting for Floodgate.
735
736 2008-02-13 Daigo Moriwaki <daigo at debian dot org>
737
738         * [shogi-server]
739           - When there are odd players wating for Floodgate, the random
740             pairing deletes the player who has ever played the most games.
741
742 2008-02-08 Daigo Moriwaki <daigo at debian dot org>
743
744         * [ml_html]
745           - For the Not-Yet-Rated group, those who have not connected
746             recently are not listed.
747         * [shogi-server]
748           - Floodgate's thread checks the current time each 10 secs.
749
750 2008-02-05 Daigo Moriwaki <daigo at debian dot org>
751
752         * [mk_rate] [mk_html]
753           - Display not-yet-rated players as well.
754         * [mk_html]
755           - Use Yahoo! UI Library.
756
757 2008-02-04 Daigo Moriwaki <daigo at debian dot org>
758
759         * [shogi-server] [webserver]
760           - In the daemon mode, if the specified directory was a relative
761             path, the server could fail to start with a permission denied
762             error. This issue has been fixed. The path is interpreted as 
763             an absolute path before switching to daemon. 
764           - In the daemon mode, a wrong process id was written in 
765             '--pid-file'. This issue has been fixed. Also, the pid file
766             will be removed when the server shuts down.
767
768 2008-02-03 Daigo Moriwaki <daigo at debian dot org>
769
770         * [shogi-server]
771           - Game names that are recognized as the floodgate mode are now 
772             /^floodgate-\d+-\d+$/.
773           - Floodgate could not schedule the next time when it was the next
774             day. This issue has been fixed.
775
776 2008-02-02 Daigo Moriwaki <daigo at debian dot org>
777
778         * [shogi-server]
779           - Implemented a new feature, Floodgate mode, for covenience with
780             public rating games. Now there is a special game "wdoor-900-0".
781             Matching players for that game is scheduled each 30 minitues.
782
783 2007-11-03 Daigo Moriwaki <daigo at debian dot org>
784
785         * [mk_rate]
786          - Support Ruby 1.8.6 patch level 111 (or higher) and GSL 1.10 (or higher).
787            It may not work with lower verions. 
788
789 2007-09-06 Daigo Moriwaki <daigo at debian dot org>
790
791         * [shogi-server]
792           - The logic to detect Oute-Sennichite was not complete. Both players
793             (checking side and escaping side) may cause Oute-Sennichite. The old
794             logic only cared for the checking player. This issue has been fixed.
795
796 2007-06-16  Daigo Moriwaki <daigo at debian dot org>
797
798         * [webserver]
799           - Initial version. This web server is an interface between HTTP and
800             shogi-server. Shogi-server commands will be available over HTTP. As
801             of now %%LIST and %%WHO commands are supported.
802         * [mk_rate]
803           - Bumped up GAME_LIMIT (from 10) to 15 because the calculation of
804             rates sometimes went wrong (infinite values).
805
806 2007-04-21  Daigo Moriwaki <daigo at debian dot org>
807
808         * [shogi-server]
809           - Implemented `CHALLENGE' command, and the server will respond with
810             `CHALLENGE ACCEPTED'. Note that this command is dummy for this server
811             because it is only available for CSA's official testing server and does
812             not belong to the CSA standard protocol.  Therefor, when clients receive
813             `CHALLENGE ACCEPTED' from this server, they must ignore it.
814           - Show revision in a start up message.
815
816 2007-04-01  Daigo Moriwaki <daigo at debian dot org>
817
818         * [shogi-server]
819           - Implemented one of the keepalive protocol in CSA protocol; If clients
820             send LF, the server sends back LF.
821           - More care for socket errors.
822
823 2007-03-27  Daigo Moriwaki <daigo at debian dot org>
824
825         * [mk_rate] When there were too few games to rate players (i.e. no
826           player to rate), mk_rate caused an error. Now it no longer shows
827           the error.
828
829 2007-03-10  Daigo Moriwaki <daigo at debian dot org>
830
831         * [mk_html] Popup shows additional information.
832
833 2007-03-02  Daigo Moriwaki <daigo at debian dot org>
834
835         * [shogi-server]
836           - Use WEBrick for server framework.
837           - Daemon mode is available.
838
839 2007-02-26  Daigo Moriwaki <daigo at debian dot org>
840
841         * [shogi-server]
842           - Failed to show usage. This issue has been fixed. 
843           - Initial start of the server failed beacause of empty players.yaml.
844             This issues has been fixed.
845
846 2007-02-18  Daigo Moriwaki <daigo at debian dot org>
847
848         * [mk_html]
849           - Show groups in the order specified in players.html.
850           - Players who gamed recently have a background color.
851         * [mk_rate]
852           - Implemented half-life effect. Numbers of win/lose decrease by this effect.
853
854 2006-11-26  Daigo Moriwaki <daigo at debian dot org>
855
856         * [shogi-server] Sente (gote) was able to move gote's (sente's) hand.
857           That move should be illegal. This issue has been fixed.
858
859 2006-11-01  Daigo Moriwaki <daigo at debian dot org>
860
861         * [mk_rate] Skip "abnormal" games, which were finished because of
862           network failure or communication error.  Recently some programs seem
863           to have a lot of tries to connect to the Shogi Server at wdoor for
864           debugging. We should ignore such games for a while to get a meaningful
865           ratings.
866
867 2006-10-30  Daigo Moriwaki <daigo at debian dot org>
868
869         * [mk_rate][mk_html]
870           - Put players into "connected" groups in order to
871             show a correct, meaningful rating. In the group, each player has at
872             least a game with other players.
873           - The format of players.yaml was updated.
874         * [shogi-server] Followed the new format of players.yaml.
875
876 2006-10-08  Daigo Moriwaki <daigo at debian dot org>
877
878         * [mk_rate] Corrected making win_loss_matrix.
879
880 2006-10-02  Daigo Moriwaki <daigo at debian dot org>
881
882         * [mk_rate] players who never win or lose are not rated in order
883           the calculation to complete.
884
885 2006-09-30  Daigo Moriwaki <daigo at debian dot org>
886
887         * [shogi-server] The CSA mode supports the trip in a password.
888
889 2006-09-22  Daigo Moriwaki <daigo at debian dot org>
890
891         * [shogi-server] Refactored the login procedures.
892
893 2006-09-21  Daigo Moriwaki <daigo at debian dot org>
894
895         * [mk_rate] It failed parse draw games. Now this bug has been fixed.
896         * [mk_html] Add CSS to look better.
897
898 2006-09-15  Daigo Moriwaki <daigo at debian dot org>
899
900         * [shogi-server]
901           - Remove the trip in a password. Now the password is hashed.
902         * [mk_rate]
903           - Support @NORATE syntax in a name, which avoids the player is
904             rated.
905
906 2006-09-09  Daigo Moriwaki <daigo at debian dot org>
907
908         * [shogi-server]
909           - Support a new command, %%VERSION. It shows the server's revision#.
910
911 2006-09-07  Daigo Moriwaki <daigo at debian dot org>
912
913         * [shogi-server]
914           - Re-design: trip is now a suffix of the password, not name.
915           - Simplified the output of %%RATING.
916         * [mk_rate]
917           - Support "@" indentificaton in a name; players with same
918             before-@-names are mapped to one.
919
920 2006-09-05  Daigo Moriwaki <daigo at debian dot org>
921
922         * [mk_rate] Fix a bug. It solves the correct rate.
923
924 2006-08-18  Daigo Moriwaki <daigo at debian dot org>
925
926         * [mk_rate] Re-design. 
927           - Correct the equations.
928           - Apply deaccelerated Newton method.
929
930 2006-08-16  Daigo Moriwaki <daigo at debian dot org>
931
932         * [mk_rate]
933           - Fix a bug. Now it can see black/white players in a csa file.
934         * [shogi-server]
935           - Add a space in the output of %%RATING.
936
937 2006-08-14  Daigo Moriwaki <daigo at debian dot org>
938
939         * [mk_rate] Record numbers of win/loss games.
940         * Add mk_html, which generates html from players.yaml
941         * Fix test/test_board.rb. Now it works. 
942         * Add test/TC_ALL.rb to run all test cases.
943         * [shogi-server] Fix a bug. Now it can show %%RATING even if it has no
944           rated player.
945
946 2006-08-11  Daigo Moriwaki <daigo at debian dot org>
947         
948         * Add mk_rate, which calculate rating scores.
949
950 2006-08-10  Daigo Moriwaki <daigo at debian dot org>
951
952         * Change the style of a comment line on the rated game.
953
954 2006-08-07  Daigo Moriwaki <daigo at debian dot org>
955
956         * Change the player id, which is now <name>+<hash_of_the_trip>.
957         * Fix the max length of the login name with a trip.
958         * Add a comment line about the rated game status in the CSA file.
959         * Remove the rating system, which will be calculated by another
960           program.
961
962 2006-08-01  Daigo Moriwaki <daigo at debian dot org>
963
964         * Add a command, %%RATING, to show a ranking sorted by rates.
965
966 2006-07-31  Daigo Moriwaki <daigo at debian dot org>
967
968         * Add a simple rating system.
969
970 2006-07-30  Daigo Moriwaki <daigo at debian dot org>
971
972         * Add a @move_counter in Board class, which is used by Shogi Viewer
973           CGI.
974
975 2006-04-28  Daigo Moriwaki <daigo at debian dot org>
976
977         * Jishogi kachi declaration did not work. This bug has been fixed.
978           Add debug lines to show a jishogi state.
979
980 2006-04-08  Daigo Moriwaki <daigo at debian dot org>
981
982         * Support CSA Protocol Version 1.1.
983         * Change the declaration of Jishogi 1.1.
984
985 2006-03-10  Daigo Moriwaki <daigo at debian dot org>
986
987         * Kifu logs are always written in separate files.
988         * Add a test case, test/TC_functional.rb
989         * Some refactorings.
990