Package libcudnn8 is not installed.

cudnnをインストールしようとしたらエラーが出た。

dpkg: dependency problems prevent configuration of libcudnn8-dev:
libcudnn8-dev depends on libcudnn8 (= 8.0.5.39-1+cuda11.1); however:
Package libcudnn8 is not installed.

dpkg: error processing package libcudnn8-dev (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
libcudnn8-dev

libcudnn8がないということらしいのだがそれを今インストールしているんじゃなかったのか?
インストールするものは2つあるらしい。ランタイムと開発関係のツール。libcudnn8はランタイムのことで、libcudnn8-devは開発ツールのこと。(合ってるかどうかは自信なし)
cudnnのダウンロードページに

cuDNN Runtime Library for Ubuntu20.04 x86_64 (Deb)

cuDNN Developer Library for Ubuntu20.04 x86_64 (Deb)

というダウンロードリンクがあるので、まずはランタイムからダウンロード・インストールして、次に開発ツールの方をインストールすればいい。はじめてだとわからんよね。

ANAREA Battle Royale というバトロワゲーが事実上開発中止になっている件

ANAREA Battle Royaleとは?

ANAREA Battle Royale https://store.steampowered.com/app/1103950/ANAREA_Battle_Royale/

H1Z1ライクのバトロワゲー。武器のテイストやキャラクターのモーションなどは大ヒットしたバトロワゲーのH1Z1をパクったというかオマージュしていて再構築したH1Z1といった雰囲気のゲーム。

1ゲーム60人が参加して殺し合い最後の一人にまで生き残れば勝者となる。時間経過とともにセーフエリアが狭まるためプレイヤーはその都度場所移動を余儀なくされる。武器はアサルトライフルやショットガン、ハンドガンなどほぼH1Z1と同じ武器種が用意されている。

リリースから今後のロードマップ

2020年8月初めに度重なる発売延期からようやくリリースされた。リリース当初はアルファ版ということもあってソロモードのみの実装となっていた。今後のロードマップとしては、

  • ゲーム内でスキンアイテムなどの購入システムの追加
  • デュオ、スクワッドなどのゲームモードの追加
  • 武器やキャラクターのカスタマイズ
  • アンチチートシステムの実装
  • 新武器の実装

などが予定されている。乗り物やシーズンパスといったバトロワでよくあるシステムも実装予定に加わるのではないかとも思われる。

現状

9月のツイートを最後に運営からの情報発信は途絶えた。

ロードマップには10月中にはデュオ&スクワッドのゲームモードなどが実装されることになっているのだけれど、この記事を書いている11月現在では全て未実装。というかこのゲームをやっている人が現在いない。

いくつか致命的な問題があり、

  • リリース時のゲームとしてのクオリティが低すぎた
  • サーバーが不安定でなかなかマッチングしない。マッチングしてゲームが始まったとしても途中でフリーズしたりしてまともにゲーム続行できない。
  • ↑の理由で人が減ってさらにマッチングしない。
  • 超絶過疎っているのにチーターがいる

レビューによると

  • Dead Game
  • no one in game
  • anarea is a scam
  • ゴミゲーム

まとめ

運営からの情報が一切発信されないので現状は死んだゲームと評せざるを得ない。(購入はできるみたいだが)
規模の小さいゲーム会社が作ったゲームだとこういうような突然に運営がパタッと更新しなくなるというようなことがあるのが怖いところ。めったにないことかというと、個人的な経験では他のゲーム会社のゲームでもそういえば似たようなことはあったのでわりとよくあることなのかもしれない。インディーズのような規模のゲームだと特に。艦これのパクリオマージュの某ゲームも突然twitterの更新が停止して似たような状況になっていて、Twitterの突然の更新停止がゲーム終了のサインになっているのは業界の暗黙の了解なのだろうか。
今は世界的にコロナが流行しているためなんらかの開発中止せざるを得ない理由があるのかもしれないが、何かしら一言は欲しいところ。とりあえず言えることはこのゲームとゲーム会社には今後良くなることは期待できない。

クラウドなのにデータ全消失

サービス提供側のミスで「サーバデータが完全に消失」 利用者にできることは

AWSとかAzureとかどこのクラウドサービスも似たようなシステムだろうけれども期限切れたらデータ全消失っていうのは、まあ、そういうものだろうなとは思う。最近のレンタルサーバとかクラウドはオブジェクトとかインスタンスとかを立ててすぐ始められて、やめるときはその立てたサーバインスタンスを削除するだけですぐサーバリセットできるという非常にカジュアルな使い勝手になってる。私自身サーバをレンタルで借りてるが、もし支払い期限を過ぎて未払いになってしまったら容赦なくサーバインスタンスは削除されてしまうと思われる。サーバインスタンスが生き続けている限りサーバ会社はリソースを消費するということになるから。システムとデータのバックアップを取っていなくてすべて消失して復旧は不可能、というのは不可解でちょっと信じがたい。期限切れでサーバが解約されてデータ消失は普通のこと。レアケースだけれどなくはないこと。でもバックアップしていなかったのはありえない。

ふくい産業支援センターは「システムと登録データは、バックアップを含め完全に消失し、復旧には相当の期間が必要で再稼働の時期は現時点では未定だ」とコメントしました。

バックアップになっていない(´Д`;)

調べてみるとAWSの場合は未払いだとアカウントロックという処置が取られて、支払いをすませばまた復旧して使えるようになるとのこと。リソース(作成したインスタンスとかのことだろうか?)も元通り使えるようになるらしい。まあ、このAWSの仕組みは便利だなと思うけれどどこも同じではないので料金未払い発生したらサーバインスタンスは削除されるものと認識しておくのが危機管理的には丁度いいんじゃないだろうか。

日本が突然バドミントン強豪国になったのはラリーポイント制のせい

バドミントンのラリーポイント制の導入

2006年に競技規則が改正されラリーポイント制が正式に導入された。
http://bmuseum.g1.xrea.com/SHORUI/a1.files/RuleHistory.pdf (PDF注意)

15点3ゲーム(女子は11点3ゲーム)のサービスポイント制から21点3ゲームのラリーポイント制へ。

サービスポイント制の特徴

  • サービス権を持ったプレーヤーがラリーを制したときだけポイントが入る
  • 実力者同士の試合になると長時間体力勝負になる
  • 実力差があると番狂わせはほぼ発生しない

ラリーポイント制の特徴

  • サービス権を持ったプレーヤーに関わらずラリーを制した側のプレーヤーにポイントが入る
  • 試合時間短縮
  • 点の動きが激しくなり勝敗に不確定要素が多くなる

サービスポイント制での国際大会での成績

バドミントンの主な国際大会はオリンピックとトマス杯&ユーバー杯など。オリンピックは1992年から正式種目として採用された。

1992年オリンピック

男子シングルス
・町田文彦 2回戦敗退
・本山秀昭 2回戦敗退

男子ダブルス
・松野修二,松浦進二 準々決勝敗退(ベスト8)
・町田文彦,宮康ニ 1回戦敗退

女子シングルス
・水井妃佐子 3回戦敗退
・鴻原春美 2回戦敗退

女子ダブルス
・水井妃佐子,鴻原春美 2回戦敗退
・陣内貴美子,森久子 2回戦敗退

1996年オリンピック

男子シングルス
・町田文彦 3回戦敗退

女子シングルス
・水井妃佐子 3回戦敗退
・水井泰子 3回戦敗退

女子ダブルス
・松尾知美,阪本雅子 2回戦敗退
・宮村愛子,宮村亜貴子 1回戦敗退

2000年オリンピック

男子シングルス
・山田英孝 2回戦敗退
・舛田圭太 2回戦敗退

女子シングルス
・水井泰子 準々決勝敗退(ベスト8)
・米倉加奈子 3回戦敗退

女子ダブルス
・井川里美,永峰弘子 1回戦敗退
・岩田良子,松田治子 2回戦敗退

2004年オリンピック

男子シングルス
・佐藤翔治 1回戦敗退
・山田英孝 1回戦敗退

男子ダブルス
・舛田圭太,大束忠司 2回戦敗退

女子シングルス
・田中美保 1回戦敗退
・森かおり 2回戦敗退

女子ダブルス
・吉冨桂子,中山智香子 2回戦敗退

1948年~2004年トマス杯

・3位 2回

1956年~2004年ユーバー杯

・優勝 5回
・準優勝 1回
・3位 2回

ラリーポイント制以降の国際大会での成績

2008年オリンピック

男子シングルス
・佐藤翔治 3回戦敗退

男子ダブルス
・舛田圭太,大束忠司 準々決勝敗退(ベスト8)
・坂本修一,池田信太郎 1回戦敗退

女子シングルス
・廣瀬栄理子 3回戦敗退

女子ダブルス
・前田美順,末綱聡子 準決勝敗退(ベスト4)
・小椋久美子,潮田玲子 準々決勝敗退(ベスト8)

2012年オリンピック

男子シングルス
・佐々木翔 準々決勝敗退(ベスト8)
・田児賢一 グループステージ敗退

男子ダブルス
・佐藤翔治,川前 直樹 グループステージ敗退

女子シングルス
・佐藤冴香 本戦1回戦敗退(ベスト16)

女子ダブルス
・藤井瑞希,垣岩令佳 決勝敗退(準優勝)
・前田美順,末綱聡子 グループステージ敗退

2016年オリンピック

男子シングルス
・佐々木翔 グループステージ敗退

男子ダブルス
・早川賢一,遠藤大由 本戦1回戦敗退(ベスト16)

女子シングルス
・奥原希望 準決勝敗退・3位決定戦勝利(3位)
・山口茜 準々決勝敗退 (ベスト8)

女子ダブルス
・松友美佐紀,髙橋礼華 優勝

2006年~2018年トマス杯

・優勝 1回
・準優勝 1回
・3位 2回

2006年~2018年ユーバー杯

・優勝 1回
・準優勝 1回
・3位 3回

まとめ

ルール変更前のサービスポイント制のときの日本はバドミントン弱小国。ラリーポイント制へと変わってからバドミントン強豪国へと転じていった。

闇カジノの件でバドミントン協会から登録抹消されていた田児賢一が処分解除されたとのこと

タイだかインドネシアだか海外でバドミントンやってるらしい田児賢一は今どうしてるんだろうかなとググってみたら現在はYoutuberになっている様子。で最近の投稿で闇カジノの件の処分が解除されて、晴れて日本国内でのバドミントンの大会に出場できるようになった(?)らしい。おめでとうございます。

・・・金髪?それに、体重90キロぐらいありそうなんだがどうなってんの。一瞬見た時誰だかわからなかった。

Redisに登録したデータが消える

消える。とにかく消える。expireを設定しておいてもその期限前に消える。マシンのメモリの上限に達しているわけではなさそうなのだが、ある程度登録データが溜まってきたらごっそり消える。なんでだ。noevictionに設定すればさすがに消えないようだがそれ以外だと意味不明理不尽に消されてしまう。

わからないこと

  • 一定時間経つと消えるようになっているのか?
  • 消えたのはやっぱりシステムメモリに上限が来てしまったからか?
  • 設定したメモリ容量の上限に達していなくても一定時間アクセスされないと消えるのか?
  • saveしないようにすると定期的にきえるようになるのか?

とにかくわからない。永続化は必要ないのでmemcachedのように保存しないように設定して運用していたがそれがだめだったのだろうか。とりあえず保存する設定でも試してみるがわけわからん。

[超簡単] JAVA : 配列から文字列 と 文字列から配列 への相互変換

ArrayListの形式

ここでは配列の中に配列があるという多重配列の構造となったArrayListオブジェクトの場合について扱う
ArrayList<ArrayList<String>> arrList = new ArrayList<ArrayList<String>>();

利用するライブラリ

GSON https://github.com/google/gson

ArrayListから文字列へ

import com.google.gson.Gson;

(略)

Gson gson = new Gson();
ArrayList<ArrayList<String>> arrList = new ArrayList<ArrayList<String>>();
String arrStr = gson.toJson(arrList);

文字列からArrayListへ

上記で文字列に変換したArrayListを復元する

import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

(略)

Type listType = new TypeToken<ArrayList<ArrayList<String>>>(){}.getType();
ArrayList<ArrayList<String>> arrList = gson.fromJson(arrStr, listType);

用途

複雑な構造の配列でもjson形式の文字列に変換することでいろいろ扱いやすくなる。私の場合は文字列に変換してキーバリューストレージのRedisに保存するということも手軽にできるようになった。

Redisのクラスター機能を使ってみた

Redisとは

インメモリで動作するKey-Value型のデータストレージソフトウェア

Redisのクラスター機能

redisを機動しているサーバ複数でクラスターを組むことができ、負荷分散、耐障害に強くなるという特徴がある。

Redisのクラスターのメリット

  • データ書き込み時の負荷分散を行える
  • マスタースレーブ構成の場合、マスターに障害が発生するとスレーブがマスターに昇格して代わりになることができるという機能が使える

Redisのクラスターのデメリット

  • マシン台数が多く必要になる。マスターのみの構成なら最低3台、実運用するなら耐障害を考慮したマスタースレーブ構成に必然的になると思われるがその場合だと最低6台のマシンが必要になる。

メモ

一応動くかどうかテストはしてみた。マスターのみの構成でも最低でサーバ3台用意しないといけないのでなかなか大変だったが、それにしてもこのRedisのクラスターというのはどこの大規模システムで使うことを想定しているのだろうか。最低でも6台のマシン(各マスターとスレーブ)をキャッシュサーバとして使うことを許されるシステムだとしたら全体だったら何十台のサーバが稼働することやら(@ . @)クラクラ

クラスターじゃなくてもっとシンプルにマスターとスレーブのみの構成なら2台でいけるんじゃないか?と思ったが、その場合だとRedis Sentinelという監視用のサーバ3台が別途必要になってきてそれでも最低5台必要ということになる。

Redisクラスターにうってつけのマシンといえば、ラズベリーパイ4B 8GBモデルかもしれない。ラズパイにメモリ8GBも何に使うんだろ・・・と思っていたが、キャッシュサーバとしてこれほど適した用途はないんじゃないだろうか。サーバだけれどキャッシュ用途なのでECC機能は必要ないという点も丁度いい。この性能のキャッシュサーバをAWS ElastiCacheで複数台契約しようとすると恐ろしい金額になる。

TEKNOS  一人用こたつを使ってみた

就寝用コタツということなのかもしれないが暖かさは人間が温まるにはやや物足りない印象。毛布とか布団をすっぽりかぶせて使うような感じになると思うのであんまり熱すぎると危険なためこの程度の暖かさで納得するしかないのかもしれない。出力が弱いため普通のこたつの熱源の代わりにはならなそう。猫一匹が温まるには十分であるらしい。つけっぱなしにしておいてもこの電力なら火事の心配もなさそうだし留守中のペットの暖を取るのにもいいかもしれない。天板付きなのは良かった。