tag:crieit.net,2005:https://crieit.net/tags/%E3%81%8A%E3%81%A3%E3%81%BD%E3%82%93%E3%81%BD%E3%82%93%EF%BC%88%EF%BC%BE%EF%BD%9E%EF%BC%BE%EF%BC%89/feed
「おっぽんぽん(^~^)」の記事 - Crieit
Crieitでタグ「おっぽんぽん(^~^)」に投稿された最近の記事
2021-05-21T00:21:31+09:00
https://crieit.net/tags/%E3%81%8A%E3%81%A3%E3%81%BD%E3%82%93%E3%81%BD%E3%82%93%EF%BC%88%EF%BC%BE%EF%BD%9E%EF%BC%BE%EF%BC%89/feed
tag:crieit.net,2005:PublicArticle/17211
2021-05-20T23:19:31+09:00
2021-05-21T00:21:31+09:00
https://crieit.net/posts/shogi-server-60a66ff3b9a3b
shogi-server にどんな機能があるか見てみようぜ(^~^)?
<h1 id="shogi-server にどんな機能があるか見てみようぜ(^~^)?"><a href="#shogi-server+%E3%81%AB%E3%81%A9%E3%82%93%E3%81%AA%E6%A9%9F%E8%83%BD%E3%81%8C%E3%81%82%E3%82%8B%E3%81%8B%E8%A6%8B%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%81%9C%EF%BC%88%EF%BC%BE%EF%BD%9E%EF%BC%BE%EF%BC%89%EF%BC%9F">shogi-server にどんな機能があるか見てみようぜ(^~^)?</a></h1>
<p>前回の記事:<a href="https://crieit.net/posts/shogi-server">shogi-serverのソースを読んでいこうぜ(^~^)</a></p>
<p><a href="https://crieit.now.sh/upload_images/8c797790a05a74ca58efc4b7430abcce60a6200bb31e9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8c797790a05a74ca58efc4b7430abcce60a6200bb31e9.png?mw=700" alt="20210124shogi2a2b1.png" /></a><br />
「 将棋サーバーにどんな機能があるか見ていこうぜ?」</p>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 Makefile にいろいろ書かれているぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br />
「 全部実行してみましょう!」</p>
<h2 id="Makefile"><a href="#Makefile">Makefile</a></h2>
<h3 id="doc"><a href="#doc">doc</a></h3>
<pre><code class="shell">make doc
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
(カタカタカタカタ……)</p>
<p><a href="https://crieit.now.sh/upload_images/7174c36aaa80aa6aabc237dbcec16b2060a62408df16e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7174c36aaa80aa6aabc237dbcec16b2060a62408df16e.png?mw=700" alt="20210520shogi100.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 なんか巨大なディレクトリーがでけたぜ?」</p>
<p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br />
「 Webサイトなんじゃないの?」</p>
<p><a href="https://crieit.now.sh/upload_images/f2116a306d71cc077962be8f760a110d60a625af91812.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f2116a306d71cc077962be8f760a110d60a625af91812.png?mw=700" alt="20210520shogi101.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 API ドキュメントがでけたぜ。あとで使お」</p>
<h3 id="test-run"><a href="#test-run">test-run</a></h3>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 テストランの機能が付いていたのかだぜ!」</p>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 先に調べないから……」</p>
<pre><code class="shell">make test-run
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
(カタカタカタカタ……)</p>
<p><a href="https://crieit.now.sh/upload_images/ff58f3f40dc0029de6aeddbe8c7a0d1860a626d7d5ab3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ff58f3f40dc0029de6aeddbe8c7a0d1860a626d7d5ab3.png?mw=700" alt="20210520shogi102a1.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 今 18時4分なんだが、次の対局は 19時に始まるらしいぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 あと回しにしようぜ?」</p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 なんか 他のやつもサーバー立てるみたいだし、同じことになるかもしらん。 API ドキュメントでも先に読んでようぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/1b5da9723b686a7713301fe0ba79771f60a63a1dbffd5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1b5da9723b686a7713301fe0ba79771f60a63a1dbffd5.png?mw=700" alt="20210520shogi103.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 19時に フラッドゲートがスタートしたんだが、誰もいないから終わったぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br />
「 れさかい と きふわらべちゃんを ログインさせておきましょう!」</p>
<p><a href="https://crieit.now.sh/upload_images/3c1ab11e82a8d5abea1c8334e00b415860a63b27810cb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3c1ab11e82a8d5abea1c8334e00b415860a63b27810cb.png?mw=700" alt="20210520shogi104.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 ログインしようとしたら、弾かれてしまったぜ?」</p>
<p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br />
「 4081番ポートは 純正のCSAプロトコルを使う無印のサーバーの方ねぇ」</p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 同様に弾かれたぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 なんかログイン条件があるのかだぜ?」</p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 それを説明してくれないと 分かんないぜ」</p>
<h3 id="test-run-daemon"><a href="#test-run-daemon">test-run-daemon</a></h3>
<h3 id="make stop-daemon"><a href="#make+stop-daemon">make stop-daemon</a></h3>
<h3 id="make test-time-run"><a href="#make+test-time-run">make test-time-run</a></h3>
<h3 id="image-build"><a href="#image-build">image-build</a></h3>
<h3 id="make clean"><a href="#make+clean">make clean</a></h3>
<h2 id="mk_game_results"><a href="#mk_game_results">mk_game_results</a></h2>
<h2 id="mk_html"><a href="#mk_html">mk_html</a></h2>
<h2 id="mk_rate"><a href="#mk_rate">mk_rate</a></h2>
<h2 id="shogi-server"><a href="#shogi-server">shogi-server</a></h2>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 これ、将棋サーバーの本体の入り口だぜ。Rubyのシェルスクリプト」</p>
<h2 id="showgame"><a href="#showgame">showgame</a></h2>
<pre><code class="shell">Start a thrift server
$ ./graphicserver --port 9090 -d ./public/images
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 <code>graphicserver</code> というシェルが無いから実行できないぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/0b7ffb8334d7ae995f94c1edddb0d35c60a65d56d8c6e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0b7ffb8334d7ae995f94c1edddb0d35c60a65d56d8c6e.png?mw=700" alt="20210520shogi106.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 <code>ramaze</code> というフレームワークが要るのかだぜ?」</p>
<p><a href="https://crieit.now.sh/upload_images/6049ee9fa6cfcede6fb0b48ed790879160a65dba3dc2e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6049ee9fa6cfcede6fb0b48ed790879160a65dba3dc2e.png?mw=700" alt="20210520shogi108.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 👆 1枚目に <code>ramaze</code> 要るって書いてるぜ」</p>
<pre><code class="plain">RUN gem install rgl
RUN gem install ramaze # 要らないんじゃないか(^~^)?
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 Dockerfile に追記しとくけど」</p>
<pre><code class="plain">ruby start.rb
start.rb:4:in `<main>': undefined method `/' for "/shogi-server/showgame":String (NoMethodError)
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 動かね」</p>
<p><a target="_blank" rel="nofollow noopener" href="https://keita-yamaguchi.hatenadiary.org/entry/20080324/1206360798">とっても便利な Kernel#acquire, <strong>DIR</strong></a></p>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 👆 2008年に便利な機能だったらしいぜ、 <code>ramaze</code>」</p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 Bonanzaが優勝した2年後で、コンピューター将棋が盛り上がってた頃だな。 <code>ramaze</code> 要らなくね?」</p>
<pre><code class="shell">ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu]
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/beaf94b260ae2602ca8cf7f5bbc769c260a62046c3220.png?mw=700" alt="kifuwarabe-futsu.png" /></a><br />
「 👆 rubyのバージョンは 2.1 以上あるんだけどな。 ramaze 用のコードが動かないぜ」</p>
<p><a href="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6caf6840c8b04f280fd7b5f447c040fc60a620636fea5.png?mw=700" alt="ohkina-hiyoko-futsu.png" /></a><br />
「 Rubyのバージョンって上げれないの?」</p>
<pre><code class="shell">apt-get update
apt-get install -y rbenv
rbenv --version
rbenv 1.0.0
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 Rubyのバージョンを上げるための rbenv のバージョンが旧いぜ」</p>
<p>📖 <a target="_blank" rel="nofollow noopener" href="https://qiita.com/niwasawa/items/65c7bb720788df4f8092">Debian 9 Stretch に rbenv をインストールして Ruby の最新バージョンを使う</a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 手順 長……」</p>
<pre><code class="shell">apt install -y git
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
apt install -y wget
apt install -y gcc-6 autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
rbenv install --list
rbenv install 2.7.3
rbenv versions
# * system (set by /root/.rbenv/version)
# 2.7.3
rbenv global 2.7.3
rbenv versions
# system
# * 2.7.3 (set by /root/.rbenv/version)
export PATH="$(rbenv root)/shims:$PATH"
ruby --version
# ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux]
echo 'export PATH="$(rbenv root)/shims:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 なんか 旧いバージョン消されていくみたいだから、 Dockerfile も永続的に使える書き方ができないな」</p>
<pre><code class="plain">root@f579f8d09ec7:/shogi-server/showgame# ruby start.rb
Traceback (most recent call last):
start.rb:4:in `<main>': undefined method `/' for "/shogi-server/showgame":String (NoMethodError)
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 動かないし」</p>
<h2 id="shogi-server-profile"><a href="#shogi-server-profile">shogi-server-profile</a></h2>
<h2 id="webserver"><a href="#webserver">webserver</a></h2>
<pre><code class="shell">ruby webserver
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
(カタカタカタカタ……)</p>
<pre><code class="plain">Traceback (most recent call last):
5: from webserver:180:in `<main>'
4: from webserver:148:in `main'
3: from webserver:148:in `new'
2: from webserver:40:in `initialize'
1: from webserver:40:in `open'
webserver:40:in `initialize': No connection could be made because the target machine actively refused it. - connect(2) for "localhost" port 4081 (Errno::ECONNREFUSED)
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 👆 先に CSAモードで 対局サーバー立てとくかだぜ」</p>
<pre><code class="plain">ruby webserver
webserver:73: warning: Object#timeout is deprecated, use Timeout.timeout instead.
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/5872a893881749da5d74d809c3086fe560a6575062209.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5872a893881749da5d74d809c3086fe560a6575062209.png?mw=700" alt="20210520shogi105.png" /></a></p>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 何かに接続した気はしないぜ。 Windows だから? もしかして これも Docker化した方がいい?」</p>
<pre><code class="shell">ruby webserver &
curl http://localhost:4081
LOGIN:incorrect
LOGIN:incorrect
LOGIN:incorrect
LOGIN:incorrect
LOGIN:incorrect
</code></pre>
<p><a href="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d27ea8dcfad541918d9094b9aed83e7d60a6237d3112a.png?mw=700" alt="ramen-tabero-futsu2.png" /></a><br />
「 何をするツールか分からないな」</p>
<p>次の記事:<a href="https://crieit.net/posts/shogi-server-web-Python">shogi-serverのwebアプリケーション部分をPythonに書き直そうぜ(^~^)</a></p>
むずでょ