OSDN Git Service

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