+2017-09-02 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server] Write more game results in record files
+ As the CSA Record Format standard states, "%TIME_UP" and
+ "%SENNICHITE" are now recorded in CSA files when a game ends for
+ timed up or sennichite respectively.
+ (Closes #37490)
+ * [shogi-server] [mk_game_results] Change schema to add number of
+ moves The format of an internal game result summary file, '00LIST',
+ has been changed to add number of moves of a game, which would be of
+ help for a script calculating rating scores.
+ (Closes #37491)
+
+2017-02-26 Daigo Moriwaki <daigo at debian dot org>
+
+ * utils/csa-filter.rb: Allow csa-filter.rb to filter games by a winner or loser
+ New command lines, --winner <player> or --loser <player>, are now
+ supported to supply extra filtering conditions. Note that each
+ filter is combined as AND condition.
+ E.g.
+ - % ./csa-filter.rb ~/Downloads/20160314 --white gpsfish_xeon --loser gpsfish_xeon
+ - % ./csa-filter.rb ~/Downloads/20160314 --white gpsfish_xeon --winner gpsfish_xeon
+ (Closes #37023)
+
+2016-12-11 Daigo Moriwaki <daigo at debian dot org>
+
+ * Update Revision to 20161211.
+ * Fix Dockerfile.
+
+2016-12-09 Daigo Moriwaki <daigo at debian dot org>
+
+ * Allow util/statistics.rb to set a filtering condition of found files
+ Regarding util/statistics.rb, add a new command line option,
+ --filter regexp, to process files that are matched with a regexp.
+ It would make it easier to calculate statistics of certain games.
+ (Closes #36855)
+
+2016-11-26 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server] Allow to customize maximum lenght of a login indentifier
+ (Closes #36821)
+ - The current maximum length of a login identifier is 32. Some
+ private uses require longer player names to distinguish each other
+ by specifying randomly generated tokens. It would of help to add a
+ new command line option --max-identifier to overwrite the default
+ maximum length.
+ * Build a Docker image for Shogi-server
+ (Closes #36822)
+ - Build a Docker image
+ % make image-build
+ - Running a local shogi-server would look like
+ % docker pull shogiserver/shogiserver
+ % docker run -p 4081:4081 -v `pwd`/logs:/logs shogiserver/shogiserver
+ * [shogi-server] shogi_server/game.rb:
+ - Remove a debug message
+
+2016-04-09 Daigo Moriwaki <daigo at debian dot org>
+
+ * utils/eval_graph.rb
+ - Support Fischer time control.
+ * [shogi-server] Bump up the revision to 20160409.
+
+2016-04-02 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server] Support Fischer Time Control
+ (Closes #36230)
+ - Fischer time control means that:
+ Before a player has made their move, a specified time increment is
+ added to their clock. Time can be accumulated, so if the player
+ moves within the delay period, their remaining time actually
+ increases.
+ (https://en.wikipedia.org/wiki/Chess_clock)
+ - New syntax of game names:
+ An 'F' suffix denotes a Fisher time in seconds. For example,
+ "floodgate-600-10F" specifies
+ + A floodgate game
+ + Total allotted time is 600 seconds for each player
+ + 10-second increment before a player's move in a Fischer way
+ - The server now proposes game conditions upon a game start with
+ - "Protocol_Version 1.2"
+ - "Increment:<n>" for Fischer Time Control
+ - Kifu files can include the following comment for Fischer Time
+ Control:
+ - "'Increment:<n>"
+ * [shogi-server] Fix some lint warnings.
+
+2015-12-13 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server] Enhance capability of Floodgate configuration file
+ - New parameter: Max_Moves, defined in the CSA protocol
+ ex. set Max_Moves 256
+ - New parameter: Least_Time_Per_Move, defined in the CSA protocol
+ ex. set Least_Time_Per_Move 0
+ - Proposed messages distributed to each player upon starting a new
+ game will include Max_Moves as well as Least_Time_Per_Move.
+ - CSA files produced by the server will include settings of
+ Max_Moves and Least_Time_Per_Move in comment lines as follows:
+ 'Max_Moves:256
+ 'Least_Time_Per_Move:0
+ - The official Shogi-server on wdoor.c.u-tokyo.ac.jp will
+ be running with different parameters, depending on game names.
+ a) Max_Moves will be 256 for floodgate-600-10 games;
+ otherwise, 0.
+ b) Least_Time_Per_Move will be 0 for floodgate-600-10 games;
+ otherwise 1.
+ (Closes: #35839)
+ * [shogi-server] shogi_server/pairing.rb:
+ - LeastDiff attempts more trials, depending of a number of players
+ to be matched, top achieve more optimized matching combinations.
+
+2015-11-27 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server] shogi_server/time_clock.rb:
+ - A time consumed could be -1.
+ * The start time of a move is captured after sending a move to a
+ player of the next turn at the end of the giant lock
+ * The end time of the move is captured at the exact time when the
+ server receives it before the giant lock
+ Therefore, end_time < start_time is possible when a player returns a
+ move instantly.
+ Thanks to Tomoyuki Kaneko for reporting this issue.
+ (Closes: #35795)
+
+2015-02-14 Daigo Moriwaki <daigo at debian dot org>
+
+ * util/statistics.rb:
+ - Updated to investigate floodgate-600-10 games.
+ Consult the result at
+ http://www.sgtpepper.net/hyspro/diary/20150214.html.
+ - Added a companion R script: histogram.R
+
+2015-02-01 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server/login.rb: When players are logged in, log their
+ player_id if they have it.
+
+2015-01-20 Daigo Moriwaki <daigo at debian dot org>
+
+ * [mk_rate]
+ - Getting an absolute path of this file was wrong if it was a
+ symbolic link. This issue has been addressed.
+ * [mk_html]
+ - Links to details pages for players now use a relative path so
+ that it works on a testing site.
+
+2015-01-17 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi-server, shogi_server/{command,game_result,player}.rb:
+ The change at 2014-10-13 was not worked as expected. Reworked.
+ A player, attempting to login with the current live player
+ stalling for more than a day, can forcibly override the current
+ player.
+
+2015-01-12 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server.rb: Follow an API change in a upstream class:
+ LogDevice.previous_period_end
+
+2014-12-27 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - When a non-rated player participates in Floodgate, the following exception
+ was thrown and a Floodgate game would not start:
+ undefined method `[]' for nil:NilClass
+ ["/home/shogi-server/www/x/shogi_server/pairing.rb:499:in `block
+ in calculate_diff_with_penalty'"
+ This issue has been resolved. Only players who have player ID
+ (i.e. those who log in with valid password) are now allowed to
+ participate in Floodgate as the spec web page
+ [http://shogi-server.sourceforge.jp/rating.html] describes.
+
+2014-12-23 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - Addressed Ruby incompatibility on ShogiServer::Usi::alphabetToDan.
+ It (and usiToCsa.rb) did not work with Ruby 1.9.3. This issue
+ has now been fixed.
+ Thanks to Hiraoka-san for debugging.
+
+2014-12-18 Daigo Moriwaki <daigo at debian dot org>
+
+ * utils/eval_graph.rb:
+ - Gnuplot 4.6.6 drew evaluation-value lines with a dashed style.
+ This issue has now been addressed so that solid lines are used.
+
+2014-11-30 Daigo Moriwaki <daigo at debian dot org>
+
+ * [mk_html]
+ - Corrected a url.
+
+2014-11-24 Daigo Moriwaki <daigo at debian dot org>
+
+ * Ruby 2.0:
+ - Ruby 2.0.0 or later is recommended to use with shogi-server
+ since Ruby 1.8 reached its End-of-Life on the end of July, 2014.
+ * [shogi-server]
+ - Addressed a warning of duplicated range in a regular expression.
+
+2014-10-13 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - A player, attempting to login with the current live player
+ stalling for more than a day, can forcibly override the current
+ player.
+ - Kifu record files now includes rating scores of players at the
+ time when games start. Previously, for rating games, a record
+ file includes player IDs of both players with a line starting with
+ "'rating". Now it also shows rating scores for players who have
+ valid scores. The formats for black and white players are as
+ follows:
+ 'black_rate:<player_id>:<score>
+ 'white_rate:<player_id>:<score>
+ A sample output:
+ 'rating:Test_sente+275876e34cf609db118f3d84b799a790:Test_gote+275876e34cf609db118f3d84b799a790
+ 'black_rate:Test_sente+275876e34cf609db118f3d84b799a790:2763.0
+ 'white_rate:Test_gote+275876e34cf609db118f3d84b799a790:2345.0
+
+2014-10-12 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi_server]
+ - New feature: max moves
+ - New command line option: --max-moves n
+ When a game with the n-th move played does not end, make the
+ game a draw (default 256 in compliance with CSA Protocol V1.2
+ or later). Setting 0 disables this feature for
+ CSA Protocol V1.1.2 or before.
+ - Players will receive a new message, "#MAX_MOVES", upon an end
+ of such a game:
+ #MAX_MOVES
+ #CENSORED
+ - A new log summary type, "max_moves", has been assigned for games
+ drawing with max moves.
+ 'summary:max_moves:name_sente draw:name_gote draw
+ - Least time per move:
+ - New command line option: --least-time-per-move n
+ This option specifies a least time in second per move, which
+ is 0 second by default, meaning that a decimal
+ fraction of time for a move will be truncated in compliance
+ with CSA Protocol V1.2 or later.
+ Set 1 for CSA Protocol V1.1.2 or before.
+
+2014-07-19 Daigo Moriwaki <daigo at debian dot org>
+
+ * [mk_rate]
+ - Added a new option, --abnormal-threshold n:
+ Games that end with the 'abnormal' status are counted in
+ win/lost games for the rating calculation if a game plays more
+ than n plies. Otherwise (or if n is zero), abnormal games are
+ counted out of rating games.
+
+2014-01-07 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - Released: Revision "20140107"
+
+2013-12-29 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - Previously, parameters in Floodgate time configuration file were
+ not applied to actual instances. This issue has been fixed.
+
+2013-12-21 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server/pairing.rb: Impose penalty on matches between
+ likely kin players.
+
+2013-12-15 Daigo Moriwaki <daigo at debian dot org>
+
+ * [webserver]
+ - Listen on only IPv4 explicitly. Under ruby 1.9.3p194, without
+ any bind addresses, ruby attempts to listen on both "0.0.0.0"
+ and "::". Specifying "::" on Linux leads to listen on both IPv4
+ and IPv6, which results in a warning message saying "Address
+ already in use - bind(2)".
+ * [shogi-server]
+ - Released: Revision "20131215"
+
+2013-12-14 Daigo Moriwaki <daigo at debian dot org>
+
+ * [usiToCsa]
+ - Added a new program, bin/usiToCsa.rb, which is a bridge for a
+ USI engine to connect to the Shogi-server.
+ - bin/usiToCsa is a sample wrapper script.
+
+2013-12-13 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server/league/floodgate_thread.rb:
+ - Added a log message.
+
+2013-12-08 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi-server/shogi_server/pairing.rb:
+ - Modified comment for LeastDiff match.
+ - Changed log messages and levels.
+
+2013-12-07 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server/pairing.rb, player.rb:
+ Simplify estimated rate of unrated players (less memory).
+ - Enhanced syntax of Floodgate time configuration file.
+ Now it supports "set sacrifice <player_id>"; it sets a
+ sacrificed player for a specific Floodgate game.
+ ex. set sacrifice gps500+e293220e3f8a3e59f79f6b0efffaa931
+
+2013-12-05 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - Added a new pairing method, ShogiServer::ExcludeUnratedPlayers,
+ which filters out unrated players.
+ - Enhanced syntax of Floodgate time configuration file.
+ Now it supports "set pairing_factory <function_name>"; it sets a
+ factory function name generating a pairing method which will be
+ used in a specific Floodgate game.
+ ex. set pairing_factory floodgate_zyunisen
+ - Implemented conversion of move representation between CSA format
+ and USI one.
+
+2013-11-24 Daigo Moriwaki <daigo at debian dot org>
+
+ * [shogi-server]
+ - shogi_server/league/floodgate.rb: Improved robustness against
+ empty file under ruby 1.9.3p194
+ - shogi-server:
+ - Previously, reloading in daemon mode failed on
+ ruby 1.9.3p194. This issue has been fixed.
+ - Listen on only IPv4 explicitly. Under ruby 1.9.3p194, without
+ any bind addresses, ruby attempts to listen on both "0.0.0.0"
+ and "::". Specifying "::" on Linux leads to listen on both IPv4
+ and IPv6, which results in a warning message saying "Address
+ already in use - bind(2)".
+ * [mk_game_results]
+ - Fixed for reading Japanese comments under ruby1.9.3p194.
+ * mk_rate-from-grep, mk_rate-grep:
+ - Removed files that are no longer used.
+
+2013-11-23 Daigo Moriwaki <daigo at debian dot org>
+
+ * [mk_rate]
+ - gsl library may be provided as a gem
+ - Now duplicated inputs are checked and skipped.
+ * test/TC_floodgate.rb
+ - Improved randomness check so that it works on Ruby 2.0.0 as well
+
2013-11-04 Daigo Moriwaki <daigo at debian dot org>
* [mk_rate]