<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Masayuki Hatta</title><link href="https://www.mhatta.org/" rel="alternate"></link><link href="https://www.mhatta.org/feeds/all.atom.xml" rel="self"></link><id>https://www.mhatta.org/</id><updated>2018-12-11T17:36:00+09:00</updated><subtitle>a rogue researcher &amp;amp; hacker wannabe from Japan</subtitle><entry><title>Good ciphers in OpenJDK 10</title><link href="https://www.mhatta.org/good-ciphers-in-openjdk10.html" rel="alternate"></link><published>2018-12-11T17:35:00+09:00</published><updated>2018-12-11T17:36:00+09:00</updated><author><name>Masayuki Hatta</name></author><id>tag:www.mhatta.org,2018-12-11:/good-ciphers-in-openjdk10.html</id><summary type="html">&lt;p&gt;Until recently, I didn&amp;#8217;t know the list of supported Cipher Suites in OpenJDK is widely different between &lt;span class="caps"&gt;JDK&lt;/span&gt; versions.  I used getSupportedCipherSuites() on OpenJDK 10 to get the following list, and check the strength of&amp;nbsp;encryption.&lt;/p&gt;
&lt;p&gt;My criteria&amp;nbsp;is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;At least&amp;nbsp;128bit.&lt;/li&gt;
&lt;li&gt;No &lt;span class="caps"&gt;NULL&lt;/span&gt;&amp;nbsp;ciphers.&lt;/li&gt;
&lt;li&gt;No anonymous auth&amp;nbsp;ciphers …&lt;/li&gt;&lt;/ol&gt;</summary><content type="html">&lt;p&gt;Until recently, I didn&amp;#8217;t know the list of supported Cipher Suites in OpenJDK is widely different between &lt;span class="caps"&gt;JDK&lt;/span&gt; versions.  I used getSupportedCipherSuites() on OpenJDK 10 to get the following list, and check the strength of&amp;nbsp;encryption.&lt;/p&gt;
&lt;p&gt;My criteria&amp;nbsp;is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;At least&amp;nbsp;128bit.&lt;/li&gt;
&lt;li&gt;No &lt;span class="caps"&gt;NULL&lt;/span&gt;&amp;nbsp;ciphers.&lt;/li&gt;
&lt;li&gt;No anonymous auth&amp;nbsp;ciphers.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then I got the following.  The red ones are supposed to be&amp;nbsp;weak.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Encryption&lt;/th&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_RSA_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_RSA_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_DSS_WITH_AES_256_GCM_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_RSA_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_RSA_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_DSS_WITH_AES_128_GCM_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_RSA_WITH_AES_256_CBC_SHA256&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_RSA_WITH_AES_256_CBC_SHA256&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_DSS_WITH_AES_256_CBC_SHA256&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_RSA_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_RSA_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_RSA_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_DSS_WITH_AES_256_CBC_SHA&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_RSA_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_RSA_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_DSS_WITH_AES_128_CBC_SHA256&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_RSA_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_ECDH_RSA_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_RSA_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_DHE_DSS_WITH_AES_128_CBC_SHA&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TLS_EMPTY_RENEGOTIATION_INFO_SCSV&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt;TLS_DH_anon_WITH_AES_256_GCM_SHA384&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_DH_anon_WITH_AES_128_GCM_SHA256&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_DH_anon_WITH_AES_256_CBC_SHA256&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDH_anon_WITH_AES_256_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_DH_anon_WITH_AES_256_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;256bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_DH_anon_WITH_AES_128_CBC_SHA256&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDH_anon_WITH_AES_128_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_DH_anon_WITH_AES_128_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;128bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; SSL_RSA_WITH_DES_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;56bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; SSL_DHE_RSA_WITH_DES_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;56bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; SSL_DHE_DSS_WITH_DES_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;56bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; SSL_DH_anon_WITH_DES_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;56bit&lt;/td&gt;
&lt;td&gt;anon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_RSA_WITH_NULL_SHA256&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDHE_ECDSA_WITH_NULL_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDHE_RSA_WITH_NULL_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; SSL_RSA_WITH_NULL_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDH_ECDSA_WITH_NULL_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDH_RSA_WITH_NULL_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_ECDH_anon_WITH_NULL_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; SSL_RSA_WITH_NULL_MD5&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;0bit&lt;/td&gt;
&lt;td&gt;null&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_KRB5_WITH_DES_CBC_SHA&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;56bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font color="Red"&gt; TLS_KRB5_WITH_DES_CBC_MD5&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;56bit&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</content><category term="Java"></category><category term="java"></category><category term="crypto"></category></entry><entry><title>2nd Denousen: Abe vs. Shueso</title><link href="https://www.mhatta.org/2nd-denousen-abe-vs-shueso.html" rel="alternate"></link><published>2013-03-24T04:50:00+09:00</published><updated>2017-05-18T11:49:00+09:00</updated><author><name>Masayuki Hatta</name></author><id>tag:www.mhatta.org,2013-03-24:/2nd-denousen-abe-vs-shueso.html</id><summary type="html">&lt;p&gt;&lt;a href="http://ex.nicovideo.jp/denousen2013/"&gt;The 2nd Shogi Denousen&lt;/a&gt; has began.  This is the first cut-throat match between top-notch professional Shogi players(yes, there are &lt;a href="http://www.shogi.or.jp/player/index.html"&gt;such people&lt;/a&gt;) and the best crop of computer Shogi engines, 5 on&amp;nbsp;5.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Shogi"&gt;Shogi&lt;/a&gt; is a distant cousin of Chess.  Unlike Chess, you may re-use captured pieces anywhere on the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://ex.nicovideo.jp/denousen2013/"&gt;The 2nd Shogi Denousen&lt;/a&gt; has began.  This is the first cut-throat match between top-notch professional Shogi players(yes, there are &lt;a href="http://www.shogi.or.jp/player/index.html"&gt;such people&lt;/a&gt;) and the best crop of computer Shogi engines, 5 on&amp;nbsp;5.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Shogi"&gt;Shogi&lt;/a&gt; is a distant cousin of Chess.  Unlike Chess, you may re-use captured pieces anywhere on the board anytime.  It brings quite lot of additional complexities, and even after &lt;a href="http://en.wikipedia.org/wiki/Deep_Blue_versus_Garry_Kasparov"&gt;the defeat of Garry Kasparov&lt;/a&gt; in 1997, many considered that (at least top-level) human Shogi players have a great lead on computer Shogi&amp;nbsp;engines.&lt;/p&gt;
&lt;p&gt;The situation had changed dramatically when a newcomer Shogi engine called &lt;a href="http://ja.wikipedia.org/wiki/Bonanza"&gt;Bonanza&lt;/a&gt;, developed by a Japanese chemist Kunihito Hoki, won &lt;a href="http://www.computer-shogi.org/wcsc16/index_e.html"&gt;the 16th World Computer Shogi Championship&lt;/a&gt;.  Bonanza appeared totally out of the blue &amp;#8212;- Hoki incorporated some new ideas developed in the field of computer Chess, and Bonanza beated existing engines with no mercy.  Bonanza could even corner some professional Shogi players in 2007.  Later Hoki released(but not strictly open-source) &lt;a href="http://www.geocities.jp/bonanza_shogi/"&gt;the source code of Bonanza&lt;/a&gt;, and the standard of computer Shogi has risen considerably since then.  Finally, in the 1st Denousen last year, &lt;a href="http://en.wikipedia.org/wiki/Kunio_Yonenaga"&gt;Kunio Yonenaga&lt;/a&gt;, long retired but possibly one of the greatest Shogi players in the history, was defeated by Bonkras, a clustered version of Bonanza developed by Eiki Itoh of&amp;nbsp;Fujitsu. &lt;/p&gt;
&lt;p&gt;The first match of Denousen this year was held yesterday between &lt;a href="http://ja.wikipedia.org/wiki/%E9%98%BF%E9%83%A8%E5%85%89%E7%91%A0"&gt;Kouru Abe&lt;/a&gt;, an 18-year old prodigy from Aomori, and Shueso, which finished in 5th at &lt;a href="http://www.computer-shogi.org/wcsc22/index_e.html"&gt;the 22nd World Computer Shogi Championship&lt;/a&gt;.  I hoped a close game, but &lt;a href="http://live.nicovideo.jp/watch/lv118753162"&gt;Abe could beat Shueso quite easily&lt;/a&gt;.  Shueso somehow could not bring its ability into full play, to my great disappointment.  Next weekend(Mar. 30), we will see &lt;a href="http://live.nicovideo.jp/watch/lv118754300"&gt;the second match&lt;/a&gt; between &lt;a href="http://ja.wikipedia.org/wiki/%E4%BD%90%E8%97%A4%E6%85%8E%E4%B8%80_%28%E6%A3%8B%E5%A3%AB%29"&gt;Shinichi Sato&lt;/a&gt;, another young pro, and Ponanza, developed based on Bonanza by &lt;a href="http://www.graco.c.u-tokyo.ac.jp/~issei/"&gt;Issei Yamamoto&lt;/a&gt; of The University of&amp;nbsp;Tokyo.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;BTW&lt;/span&gt;, Debian already has &lt;a href="http://packages.debian.org/ja/source/sid/gpsshogi"&gt;the package of &lt;span class="caps"&gt;GPS&lt;/span&gt; Shogi&lt;/a&gt;, which won &lt;a href="http://www.computer-shogi.org/wcsc22/index_e.html"&gt;the 22nd World Computer Shogi Championship&lt;/a&gt; and considered by many the strongest Shogi engine available now (there is also &lt;a href="http://packages.debian.org/ja/source/sid/gnushogi"&gt;gnushogi&lt;/a&gt; in Debian, but gnushogi is quite&amp;nbsp;weak).&lt;/p&gt;
&lt;p&gt;You may have fun&amp;nbsp;with&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    $ xshogi -fsp gpsshogi
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Unfortunately, we don&amp;#8217;t have good modern &lt;span class="caps"&gt;GUI&lt;/span&gt; for Shogi&amp;nbsp;yet&amp;#8230;&lt;/p&gt;</content><category term="Shogi"></category><category term="shogi"></category><category term="debian"></category></entry><entry><title>Recipe for Debian Haskell packaging</title><link href="https://www.mhatta.org/recipe-for-debian-haskell-packaging.html" rel="alternate"></link><published>2013-03-21T06:12:00+09:00</published><updated>2017-05-16T10:47:00+09:00</updated><author><name>Masayuki Hatta</name></author><id>tag:www.mhatta.org,2013-03-21:/recipe-for-debian-haskell-packaging.html</id><summary type="html">&lt;p&gt;The following is what I usually do when I want to debianize a Haskell stuff from Hackage.  This is a personal recipe, by no means official procedure or such.  I may be wrong, badly at&amp;nbsp;that.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Check &lt;a href="http://anonscm.debian.org/darcs/pkg-haskell/"&gt;pkg-haskell repository&lt;/a&gt; whether your intended package already exists or not.  Somebody might work …&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;</summary><content type="html">&lt;p&gt;The following is what I usually do when I want to debianize a Haskell stuff from Hackage.  This is a personal recipe, by no means official procedure or such.  I may be wrong, badly at&amp;nbsp;that.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Check &lt;a href="http://anonscm.debian.org/darcs/pkg-haskell/"&gt;pkg-haskell repository&lt;/a&gt; whether your intended package already exists or not.  Somebody might work on it&amp;nbsp;already.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find the webpage of your intended package at &lt;a href="http://hackage.haskell.org/packages/archive/pkg-list.html"&gt;HackageDB&lt;/a&gt;, then download &amp;#8220;Cabal source package&amp;#8221;.  Untar it.  The tarball filename should be changed to fit the Debian source package convention.  For example, if the original name is something like foobar-1.0.tar.gz, then it should be&amp;nbsp;haskell-foobar_1.0.orig.tar.gz.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;File &lt;span class="caps"&gt;ITP&lt;/span&gt;.  &lt;a href="http://wiki.debian.org/reportbug"&gt;reportbug&lt;/a&gt; is your&amp;nbsp;friend.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run &lt;a href="http://packages.debian.org/source/sid/cabal-debian"&gt;cabal-debian&lt;/a&gt; in untared&amp;nbsp;dir: &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;cabal-debian&lt;span class="w"&gt; &lt;/span&gt;--debianize&lt;span class="w"&gt; &lt;/span&gt;--quilt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;We do have the upstream tarball, so use &amp;#8212;quilt.  See &lt;a href="http://wiki.debian.org/UsingQuilt"&gt;http://wiki.debian.org/UsingQuilt&lt;/a&gt;.  It might give you warnings about changelog.  debian/changelog doesn&amp;#8217;t exist yet, so ignore&amp;nbsp;it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now&amp;nbsp;read &lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.debian.org/Haskell/CollabMaint/Processes"&gt;http://wiki.debian.org/Haskell/CollabMaint/Processes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.debian.org/Haskell/CollabMaint/PackageTemplate"&gt;http://wiki.debian.org/Haskell/CollabMaint/PackageTemplate&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;carefully.  Then do things as they say.  These two are short, but well-written&amp;nbsp;instructions.&lt;/p&gt;
&lt;p&gt;Edit the generated debian/control appropriately.  Do not forget to make your debian/copyright machine-friendly.  See &lt;a href="http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/"&gt;http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Test whether your package is flawless and really buildable.  Do &lt;a href="http://lintian.debian.org/"&gt;lintian&lt;/a&gt;.  Use&amp;nbsp;pbuilder.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;lintian&lt;span class="w"&gt; &lt;/span&gt;haskell-foobar_1.0-1_amd64.changes

&lt;span class="c1"&gt;# pbuilder --build haskell-foobar_1.0-1.dsc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Read &lt;a href="http://wiki.debian.org/Haskell/CollabMaint/DarcsBasic"&gt;http://wiki.debian.org/Haskell/CollabMaint/DarcsBasic&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Darcs is quite easy to use, and you don&amp;#8217;t have to be the master of Darcs to merely debianize things anyway.  Basically, what I usually do&amp;nbsp;is&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;darcs&lt;span class="w"&gt; &lt;/span&gt;record&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;darcs&lt;span class="w"&gt; &lt;/span&gt;push&lt;span class="w"&gt; &lt;/span&gt;--repo&lt;span class="o"&gt;=&lt;/span&gt;debian
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Darcs is well-suited to Haskell-related development, but seems you can use Git,&amp;nbsp;too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Change debian/changelog.  &amp;#8220;&lt;span class="caps"&gt;UNRELEASED&lt;/span&gt;&amp;#8221; in the first line should be &amp;#8220;unstable&amp;#8221; or &amp;#8220;experimental&amp;#8221;.  Do not forget to close &lt;span class="caps"&gt;ITP&lt;/span&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Finally,&amp;nbsp;do&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;debuild&lt;span class="w"&gt; &lt;/span&gt;-tc&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;debcommit&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;debrelease&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;darcs&lt;span class="w"&gt; &lt;/span&gt;push&lt;span class="w"&gt; &lt;/span&gt;--repo&lt;span class="o"&gt;=&lt;/span&gt;debian
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;That&amp;#8217;s all&amp;nbsp;folks!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</content><category term="Debian"></category><category term="debian"></category><category term="haskell"></category></entry><entry><title>Snow, Baby, Snow</title><link href="https://www.mhatta.org/snow-baby-snow.html" rel="alternate"></link><published>2013-01-14T15:48:00+09:00</published><updated>2017-05-16T10:46:00+09:00</updated><author><name>Masayuki Hatta</name></author><id>tag:www.mhatta.org,2013-01-14:/snow-baby-snow.html</id><content type="html">&lt;p&gt;{% img http://www.mhatta.org/images/snowytokyo20130114.jpg 320 200&amp;nbsp;%}&lt;/p&gt;
&lt;p&gt;It rarely snows these days in Tokyo.  Until&amp;nbsp;now.&lt;/p&gt;</content><category term="Life"></category><category term="life"></category></entry><entry><title>Toying with Octopress</title><link href="https://www.mhatta.org/toying-with-octopress.html" rel="alternate"></link><published>2012-10-24T00:45:00+09:00</published><updated>2017-05-15T22:34:00+09:00</updated><author><name>Masayuki Hatta</name></author><id>tag:www.mhatta.org,2012-10-24:/toying-with-octopress.html</id><content type="html">&lt;p&gt;Well, now you&amp;nbsp;see&amp;#8230;&lt;/p&gt;
&lt;p&gt;(Note: I gave up Octopress for Pelican/Hugo in&amp;nbsp;2017)&lt;/p&gt;</content><category term="Blogging"></category><category term="octopress"></category></entry></feed>