OSDN Git Service

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