日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

運転免許証更新が見合わされてる期間に免許が失効してしまって失効手続きをしてきた話

ちょうどいい時期に期限が切れてしまい失効手続きをしてきました。
失効手続きは免許センターでしか行えず、ゴールド免許も普通の免許に戻ってしまい悲しみに暮れるので、ちゃんと有効期限以内に手続きをしましょう・・・
延長手続きを行っていれば、その延長手続きを行った警察署で更新が可能になり、ゴールド免許も続くのでメリットがいっぱいです!!!!()

期限が切れていない人

運転免許証の有効期間の延長(再延長)手続 警視庁

これは東京都ですが、7/22現在でも有効期限の延長を行うことができるみたいなので、
まだ物理的に人が多い場所へ行きたくない人は今すぐ郵送等で延長手続きをしましょう。
物理的に行く場合はもう更新でもいいんじゃないかという感じがありますね。

更新日:2020年7月6日

運転免許証の有効期間の延長手続をすることで、有効期間を3か月延長することができます。 延長手続をした運転免許証の裏面には延長した旨や有効期間が記載され、その日まで車両の運転及び免許更新をすることができます。 延長手続を行わない場合は、有効期間は延長されませんので、有効期間内に免許更新や延長手続を行ってください。

郵送での手続きについてはこっちのリンク

郵送による運転免許証の有効期間の延長手続 警視庁

有効期限が切れてしまった人

失効手続きを行う必要があります。
普段であれば"やむを得ない理由があるなし" × (6ヶ月以内 か 1年以内) + その他で状況が変わるようですね。

郵送による運転免許証の有効期間の延長手続 警視庁

ただ、今の所やむを得ない理由があったものとして失効手続きができるようです。
新型コロナウイルス拡大の終息の定義は一体どういったものなのかわからないので確認が必要そうですが、参考までに。

運転免許証の有効期間の延長(再延長)手続 警視庁

新型コロナウイルスを理由として、有効期間までに更新手続を行うことができず運転免許を失効させた方は、運転免許の失効から最長3年以内かつ新型コロナウイルス拡大の終息から1か月以内であれば、やむを得ない理由があったものとして失効手続をすることができます。

失効手続きの準備

このあたりを参考に持っていくものを集めました。

やむを得ない理由があり、失効後6か月以内の手続 警視庁

マイナンバーカードがあれば全部コンビニで集められるので便利ですね。

失効手続き当日

平日(月曜日)の午前中に東陽町にある江東運転免許試験場へ行きました。

  • ~10:45 到着
    • 可もなく不可もなく、それなりに人がいるなという感じでした。
      • 昼時のラーメン屋に人が並んでいるなぁという感じ
        • 進むのも早いのでラーメン屋ほど並ぶという感じもなかったです。
  • ~11:30 必要物の提出、手数料の支払い、視力検査、一般講習待ち
    • 一番長かったのは視力検査後に一般講習を待っている時間でした
    • 手数料は4,750円でした。
      • 違反講習等で変わるっぽいので+αあったほうが安心かもしれません
  • ~12:30 講習終了
    • 2階の講習部屋から4階の受け取るフロアへ移動
    • 免許をすぐ受け取ってそのまま帰りました。
      • 免許の受け取るフロアでは色んな人が呼ばれるのを待っていますが、講習後の私はすぐ受け取って帰れました。

という感じでトータルで2時間くらいというところでした。
一般講習の入った部屋は私が最後だったので、もしかしたら運が良かったということもあるかもしれません。

行く前にとある免許センターではやばいレベルで並んでるというツイートを見てしまい怯えていましたが、
そんなでもなかったのでよかったです。

まとめ

免許の更新が切れる前に延長手続きだけはやっておこうな!!!
更新切れたらそんなに混んでないから平日いけるなら平日早めに失効手続きしにいこうな!!!

SwiftでJSON文字列をStructのEnumやDate型にbindする

こんにちは、最近Swiftをやっていて、Scalaのコレクション操作が欲しくなってよくないなってなっています。
API等でJSON文字列を受け取って特定のオブジェクトなどにデータを入れたいみたいなのはよくあることだと思うのですが、
Swiftでやったのは初だったのでそのあたりのメモがてらの備忘録です。

SwiftのVersion

$swift --version
Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)
Target: x86_64-apple-darwin19.5.0

StringやInt、Arrayのbind

文字列、数字や配列など、jsonにもある型は特段なにもしなくてもbindしてくれますね。
JSONDecoderになにも設定せずDecodableを実装したstructの変数名とkey名を合わせると勝手にbindしてくれました。

import Foundation

let data = """
{
    "a": {
        "b": "xxx",
        "b2": ["xxx", "yyy"]
    }
}
""".data(using: .utf8)!

struct A: Decodable { 
    let a: B
}

struct B: Decodable {
    let b: String
    let b2: [String]
}

let decoder = JSONDecoder()
let t1  = try decoder.decode(A.self, from: data)
print(t1)

実行

$swift main1.swift
A(a: main1.B(b: "xxx", b2: ["xxx", "yyy"]))

Date型のbind

やはりあるあるなのか、JSONDecoderにdateDecodingStrategyというものが用意されていました。
.iso8601フォーマットは既に用意されていて、そのフォーマットならそれを設定しておけば使えるみたいですね。
独自フォーマットにする場合はformattedメソッドにDateFormatterを渡してあげると良いみたいでした。

import Foundation

let data = """
{
    "a": {
        "b": "xxx",
        "c": "2020-07-08T15:00:00+09:00",
    }
}
""".data(using: .utf8)!

struct A: Decodable { 
    let a: B
}

struct B: Decodable {
    let b: String
    let c: Date
}

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let t1  = try decoder.decode(A.self, from: data)
print(t1)

decoder.dateDecodingStrategy = .formatted({
        let f = DateFormatter()
        f.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        return f
        }())
let t2  = try decoder.decode(A.self, from: data)
print(t2)

実行

$swift main2.swift
A(a: main2.B(b: "xxx", c: 2020-07-08 06:00:00 +0000))
A(a: main2.B(b: "xxx", c: 2020-07-08 06:00:00 +0000))

Enum型のbind

Enum型はEnum型にDecodableを実装して、文字列を元にしたいのであればStringを継承しておけば良い感じでした。

import Foundation

let data = """
{
    "a": {
        "d": [
            "hoge",
            "fuga",
            "piyo"
        ]
    }
}
""".data(using: .utf8)!

struct A: Decodable { 
    let a: B
}

struct B: Decodable {
    let d: Array<D>

    enum D: String, Decodable {
        case HOGE = "hoge"
        case FUGA = "fuga"
        case PIYO = "piyo"
    }
}

let decoder = JSONDecoder()
let t1  = try decoder.decode(A.self, from: data)
print(t1)

実行

$swift main3.swift
A(a: main3.B(d: [main3.B.D.HOGE, main3.B.D.FUGA, main3.B.D.PIYO]))

かなり簡単でしたね。
これで大体のものはAPIから内部のデータに変換できそうです。
めでたしめでたし。

AstroゲーミングヘッドセットA50の電源がつかなくて困った話

無線のゲーミングヘッドセットのAstro A50を買って使っているんですが、それが電源がつかなくなり困りました。
ぐぐったら初期化っぽい方法を書いてくれている人がいて、すごく助かったのでそのメモです。

Astro A50はこれ

助かった記事がこちら

http://nepr.info/astro-gaming-astro-astro-sans-fil-a50-gen-3-ps4-pc-%E3%83%8F%E3%82%BA%E3%83%AC%E5%BC%95%E3%81%84%E3%81%9F%E3%80%82/

引用すると、

ネットで検索すると結構海外の方で同じ症状に陥っていたが復旧出来たという書き込みがあり自分も実践してみると何事もなく復旧出来てしまったのでその方法を紹介します。
①電源スイッチをon位置にする(ledランプが点灯しなくてもok)
②ヘッドセッド右側にあるgameボタンとdolbyボタンを同時押しで30秒間押したままにする
この方法(リセット?)で復旧することが出来ました

ゲームボタンがここで

f:id:arata3da4:20200426175133p:plain
Gameボタン

Dolbyボタンがここですね

f:id:arata3da4:20200426175216p:plain
Dolbyボタン

自分のヘッドホンは電源のLEDが一切つかなかったんですが、ここを30秒押したらつくようになりました。
その他なんか充電しても充電が出来ないとかそういうときにここのリセットすると直ったりしたのでよかったです。

JupyterLab上でjupyter-lspを使って補完してもらう

jupyter全然触ってなかったらjupyter labってのが出ててへーってなったりしてました。
Tabとか押したら補完してくれるんですが、もっとリッチにできないかなーと思ってらLanguageServerのextensionがあったので、今回はそれを試してみました。

動いたレポジトリはここ

GitHub - ara-ta3/jupyterlab-getting-started

$make install install/extension run

# pythonのパスがpython3じゃない場合は
$make install install/extension run PYTHON=python

で動くはずです

インストール

Installは本家を参考にやりました。
唯一困ったのは、そのままやってもpython用のLanguageServerが起動しなくて jupyter_notebook_config.json に追加したところでした。

https://github.com/krassowski/jupyterlab-lsp#installation

0. venvの設定とnode.jsの追加

デフォで入ってたpython3とnodebrewで入れたnodeを使いました。
nodeはjupyter-lspで使うらしいです。

$python3 -V
Python 3.7.6

$python3 -m venv venv

$source venv/bin/activate

$node -v
v12.15.0

1. pipでjupyterやらlspやらをインストール

$cat requirements.txt
jupyterlab
jupyter-lsp
python-language-server[all]

$ pip install -r requirements.txt
# ... 

2. jupyter extensionをインストール

$jupyter labextension install @krassowski/jupyterlab-lsp
# ...

# installされたversion
$jupyter --version
jupyter core     : 4.6.3
jupyter-notebook : 6.0.3
qtconsole        : not installed
ipython          : 7.12.0
ipykernel        : 5.1.4
jupyter client   : 5.3.4
jupyter lab      : 1.2.6
nbconvert        : 5.6.1
ipywidgets       : not installed
nbformat         : 5.0.4
traitlets        : 4.3.3

3. jupyter_notebook_config.jsonに設定追加

{
  "LanguageServerManager": {
    "language_servers": {
      "python": {
        "version": 1,
        "argv": ["python", "-m", "pyls"],
        "languages": ["python"]
      }
    }
  }
}

起動

$jupyter lab
# ...

ちゃんと出ました。便利。

f:id:arata3da4:20200221125607p:plain
Python3の補完

参考

qiita.com

localstack上でSQS->Lambda(Scala製)の連携を動かしてみる

開発時にlocalstackをAmazon Resourceのモックとして使っていて、
前試してなんか動かなかったんだけど、ちゃんとやったら動いたのでそのメモです。

github.com

localstack上のSQSにメッセージを送ったら、localstack上でmappingされたScala製のLambdaがキックされる様子を観測するのがゴールです。
検証用に使ったコードはこちらです。

github.com

登場するコマンドたちのversion

$aws --version
aws-cli/1.16.260 Python/3.7.4 Darwin/18.7.0 botocore/1.12.250

$docker-compose --version
docker-compose version 1.24.1, build 4667896b

1. localstackの起動

docker-composeを利用しつつlocalstackのSQSとLambdaを起動します。
利用したlocalstackのversionは 0.10.6 です。
networksは内部で別のコンテナと通信したいときに指定するために使います。
(実は今回は使ってないですごめんね)

docker-compose.yml

version: "2"

services:
    localstack:
        image: localstack/localstack:0.10.6
        ports:
          - "4567-4597:4567-4597"
        environment:
            LAMBDA_EXECUTOR: docker
            DOCKER_HOST: unix:///var/run/docker.sock
            DATA_DIR: /tmp/localstack/data
            SERVICES: sqs,lambda
            DEBUG: 1
            # 内部APIを叩きたいときなどに使う
            LAMBDA_DOCKER_NETWORK: localstack-sqs-lambda_foo_network
        volumes:
          - "/var/run/docker.sock:/var/run/docker.sock"
        networks:
            foo_network:

networks:
    foo_network:

2. Lambda Handlerの作成

特に強い意図はないのですが仕事で触れていたのがScalaだったのでScalaで書いています。
HelloWorldとメッセージに含まれるBodyを表示する感じです。

scala/src/main/scala/com/ru/waka/FooHandler.scala

package com.ru.waka

import com.amazonaws.services.lambda.runtime.{Context, RequestHandler}
import com.amazonaws.services.lambda.runtime.events.SQSEvent
import scala.collection.JavaConverters._

class FooHandler extends RequestHandler[SQSEvent, Unit] {
  override def handleRequest(input: SQSEvent, context: Context): Unit = {
    context.getLogger.log("Hello World from Scala Code\n")
    context.getLogger.log("Message's body is...\n")
    input.getRecords.asScala.foreach(r => {
      context.getLogger.log(s"${r.getBody}")
    })
  }
}

Lambdaにわたす際のビルドにはsbt-assemblyを利用しています。

github.com

ビルドの様子

$make -C scala build
# Lambdaのコードビルド
make[1]: Entering directory '/Users/arata/.ghq/github.com/ara-ta3/localstack-sqs-lambda/scala'
./tools/sbt/bin/sbt assembly
[info] Loading settings for project scala-build from build.sbt ...
[info] Loading project definition from /Users/arata/.ghq/github.com/ara-ta3/localstack-sqs-lambda/scala/project
[info] Loading settings for project scala from build.sbt ...
[info] Set current project to scala (in build file:/Users/arata/.ghq/github.com/ara-ta3/localstack-sqs-lambda/scala/)
[info] Strategy 'discard' was applied to 32 files (Run the task at debug level to see details)
[info] Strategy 'filterDistinctLines' was applied to a file (Run the task at debug level to see details)
[info] Assembly up to date: /Users/arata/.ghq/github.com/ara-ta3/localstack-sqs-lambda/scala/target/scala-2.12/scala-assembly-0.1.0-SNAPSHOT.jar
[success] Total time: 1 s, completed 2019/12/20 22:50:41
make[1]: Leaving directory '/Users/arata/.ghq/github.com/ara-ta3/localstack-sqs-lambda/scala'

3. SQSとLambdaの作成

次にlocalstack上にSQSとLambda、そしてそのマッピングを作成します。
Lambda作成時には 2. でビルドした成果物のjarファイルを上げています。

# SQSの作成
$aws --endpoint-url http://localhost:4576 \
    sqs create-queue --queue-name 'foo-queue'
{
    "QueueUrl": "http://localhost:4576/queue/foo-queue"
}

# Lambdaの作成
$aws --endpoint-url http://localhost:4574 \
    lambda create-function \
    --function-name 'foo-function' \
    --runtime=java8 \
    --role=dummyrole \
    --handler=com.ru.waka.FooHandler \
    --zip-file=fileb://./scala/target/scala-2.12/scala-assembly-0.1.0-SNAPSHOT.jar
{
    "FunctionName": "foo-function",
    "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:foo-function",
    "Runtime": "java8",
    "Role": "dummyrole",
    "Handler": "com.ru.waka.FooHandler",
    "CodeSize": 10857096,
    "Description": "",
    "Timeout": 3,
    "LastModified": "2019-12-20T13:50:43.397+0000",
    "CodeSha256": "VJ4FGoNtdijTBO5acf/pu5WW/K/FQFytSH+x9WprcQc=",
    "Version": "$LATEST",
    "TracingConfig": {
        "Mode": "PassThrough"
    },
    "RevisionId": "fbaff8d2-6ac0-4498-879a-57b87cdd1466"
}

# SQSとLambdaのマッピング
$aws --endpoint-url http://localhost:4574 \
    lambda create-event-source-mapping \
    --event-source-arn arn:aws:sqs:us-east-1:000000000000:foo-queue  \
    --function-name "foo-function"
{
    "UUID": "b07dc12c-5a74-490b-82b4-1e43abdb6761",
    "BatchSize": 100,
    "EventSourceArn": "arn:aws:sqs:us-east-1:000000000000:foo-queue",
    "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:foo-function",
    "LastModified": 1576849845.0,
    "LastProcessingResult": "OK",
    "State": "Enabled",
    "StateTransitionReason": "User action"
}

これでSQSにメッセージを送ればLambdaがキックされてHello Worldが表示されるはずです。

4. メッセージを送る

aws cliからメッセージを送ってみました。
そうするとdocker-composeのログにINFOログが流れてきたのがわかります。

$aws --region us-east-1 --endpoint-url http://localhost:4576 \
    sqs send-message \
    --queue-url 'http://localstack:4576/queue/foo-queue' \
    --message-body 'hogehoge'
{
    "MD5OfMessageBody": "329435e5e66be809a656af105f42401e",
    "MD5OfMessageAttributes": "d41d8cd98f00b204e9800998ecf8427e",
    "MessageId": "c3aa9a0c-9c3d-4b61-a426-9d45a2b2595f"
}

# docker-composeのログ
localstack_1  | 13:50:42.627 [elasticmq-akka.actor.default-dispatcher-4] INFO  o.elasticmq.actor.QueueManagerActor - Creating queue QueueData(foo-queue,MillisVisibilityTimeout(30000),PT0S,PT0S,2019-12-20T13:50:42.597Z,2019-12-20T13:50:42.597Z,None,false,false,None,None,Map())
localstack_1  | 2019-12-20T13:53:26:DEBUG:localstack.services.awslambda.lambda_api: Found 1 source mappings for event from SQS queue arn:aws:sqs:us-east-1:000000000000:foo-queue: ['arn:aws:lambda:us-east-1:000000000000:function:foo-function']
localstack_1  | 2019-12-20T13:53:26:DEBUG:localstack.services.awslambda.lambda_executors: Running lambda cmd: CONTAINER_ID="$(docker create -i  --entrypoint ""  -e DOCKER_LAMBDA_USE_STDIN="$DOCKER_LAMBDA_USE_STDIN" -e HOSTNAME="$HOSTNAME" -e LOCALSTACK_HOSTNAME="$LOCALSTACK_HOSTNAME" -e AWS_LAMBDA_FUNCTION_NAME="$AWS_LAMBDA_FUNCTION_NAME" -e AWS_LAMBDA_FUNCTION_VERSION="$AWS_LAMBDA_FUNCTION_VERSION" -e AWS_LAMBDA_FUNCTION_INVOKED_ARN="$AWS_LAMBDA_FUNCTION_INVOKED_ARN" --network="localstack-sqs-lambda_foo_network" --rm "lambci/lambda:java8" bash -c 'cd /var/task; java  -cp ".:localstack-utils-fat.jar" "cloud.localstack.LambdaExecutor" "com.ru.waka.FooHandler" "event_file.json"')";docker cp "/tmp/localstack/zipfile.2c9c80b9/." "$CONTAINER_ID:/var/task"; docker start -ai "$CONTAINER_ID";
localstack_1  | 2019-12-20T13:53:29:DEBUG:localstack.services.awslambda.lambda_executors: Lambda arn:aws:lambda:us-east-1:000000000000:function:foo-function result / log output:
localstack_1  | ()
localstack_1  | >Dec 20, 2019 1:53:28 PM cloud.localstack.LambdaContext$1 log
localstack_1  | > INFO: Hello World from Scala Code
localstack_1  | >
localstack_1  | > Dec 20, 2019 1:53:28 PM cloud.localstack.LambdaContext$1 log
localstack_1  | > INFO: Message's body is...
localstack_1  | >
localstack_1  | > Dec 20, 2019 1:53:28 PM cloud.localstack.LambdaContext$1 log
localstack_1  | > INFO: hogehoge

ハマったところ

aws cliからメッセージを送った際、Regionが $HOME/.aws/config に記述されているデフォルトのRegionを見ていて ap-northeast-1 になっていました。
しかし、アプリケーション(Java SDK)から叩いた際にRegionを ap-northeast-1 に指定しても利用されるSQSは us-east-1 になってしまいました。
そのため、上記では us-east-1 を利用するようにしています。
他の言語のSDKがどうなっているかはわからないですが、ローカルでの開発用途になると思いますし、localstackに対してaws cliで叩くときにregionのオプションをつければいいだけになるので us-east-1 でとりあえず逃げることはできそうですね。

Java SDKから叩いた際のコード

scala/src/main/scala/com/ru/waka/SQSMessageSender.scala

package com.ru.waka

import com.amazonaws.regions.Regions
import com.amazonaws.services.sqs.AmazonSQSClientBuilder
import com.amazonaws.services.sqs.model.SendMessageRequest

object SQSMessageSender {
  def main(args: Array[String]): Unit = {
    val sqs = AmazonSQSClientBuilder
      .standard()
      .withRegion(Regions.AP_NORTHEAST_1)
      .build()
    val req = new SendMessageRequest()
        .withQueueUrl("http://localhost:4576/queue/foo-queue")
        .withMessageBody("Message from Scala Code")
    sqs.sendMessage(req)
  }
}

私のスプラトゥーンを脅かすゲームたち

この記事はSplathon Advent Calendar 2019 - Adventarの6日目の記事です
昨日は社畜さんが プラベはいいぞ - 社畜log という記事を書いてくれました。
自分もプラベちょいちょい参加していて、XP2500, 2600↑の人たちがいると細かいところでも学びがあるのですごく楽しいです。
普段のガチマで会わないレベルのヒトとやるとやはり楽しいです。

私のスプラトゥーンを脅かすゲームたち

さて、今日はスプラトゥーンに関する内容ではなく、私のスプラトゥーンプレイを脅かしているゲームについて話します。

常日頃からXパワーを上げたいと思っているんですが、SteamやSwitch、PS4のいくつかのゲームが私を誘惑しスプラトゥーンから引き離していきます。
その凶暴さ恐ろしさをプレイ時間のランキングにしてお届けします。
ちなみに私はタワーディフェンスゲーム、ローグライクゲーム、ドット絵、BGMがいいゲーム(特にピアノ)が好きなのでそのへんが並びます。

興味を持ったらまず一旦買ってみてください。
買うだけでいいから。一旦買うだけでいいから。
それではプレイ時間順に第10位からです。

第10位 Baba Is You (プレイ時間 8時間)

ステージ内で定義されたルール自体を変更しながら解いていくパズルゲーム Baba Is You

store.steampowered.com

動かすキャラクターをどうするか、ゴールをどれにするかもフィールド上に存在するもので決まるので、
一貫してゴールがコレであるということはなく、固定観念に捕らわれていると解けなかったりします。
逆に日を変えるとスパッと解けたりするので、たまに軽くやってみたりするとすごく楽しくておすすめです。

第9位 Plague Inc (プレイ時間 14時間)

伝染病を全世界にまき散らせ Plague Inc

store.steampowered.com

伝染病を世界中にばらまくシミュレーションゲームです。
死に至らないよう脅威を隠しながら(潜伏)
世界中の人々に伝染し(塗り)
最後には伝染病に抵抗する人類を絶滅させていく(キル)ゲームです。
スプラトゥーンですね。
1プレイそこまでかからないので気楽な気持ちでたまにプレイできるのでおすすめです。
弊害としてこのゲームをやると咳き込んでるやつがマスクしてないとキレそうになります

また、同じ会社が出している現在早期アクセスゲームもあって、
似たゲームシステムだけど違うゲームなのでこちらもおすすめです。

store.steampowered.com

第8位 Moonlighter (プレイ時間 14時間)

不思議なダンジョンを冒険するのはアイテムショップのオーナー Moonlighter

store.steampowered.com

昼はアイテムショップを営み、夜は不思議なダンジョンに冒険に出る
ローグライク要素を持つアクションRPGとアイテムショップを経営するシミュレーションを合わせたようなゲームです。
不思議なダンジョンシリーズのようなローグライクゲームはターン制が基本ですが、
このゲームはアクション要素があります。
ゼルダの伝説の夢見る島のようなアクションレベルの感じです。
アイテムショップでお客さんの顔色を見ながら金額を決めてお金を稼ぎ、
村の外れにあるダンジョンの謎を解くストーリーを持つRPGです。
面白そうと思って買ったら1週間スプラトゥーンから引き離されました。

第7位 Northgard (プレイ時間 17時間)

store.steampowered.com

北欧神話がベースとなったリアルタイムシミュレーションゲームです。
Age of Empireにハマった時期があるのでふとやったらハマってしまいました。
木を切ったりや鉱石を掘ったりして資源を集め、
領地を広げていって他の軍を征服したりなんらかの方法で勝ちに行くようなゲームですね。
1ゲームが長いのでたまにやっているとプレイ時間が伸びがちなだけな気がしてきた。
(そして思い入れが少なくてキャッチコピー的なの浮かばなかったなんて言えない

第6位 Party Hard (プレイ時間 28時間)

全てのパーティーピーポーを滅ぼせ Party Hard

store.steampowered.com

ある日主人公が寝ていたら近くでパーティー始めたウェーイwwwがいたのでそれらを皆○しにするゲームです。
最高のゲームです。
ステージに4,50人パーティーで騒いでるウェーイwww達がいて、そいつらをギミックなどを駆使しつつ全滅させるのが目的です。
自分からナイフで倒すこともできるんですが、
見られたりすると通報されて警察に捕まりゲームオーバーになるので見られずに全滅させる必要があります。
あと5人なのに捕まったりすると絶望します()
ゲームのテーマはかなり残虐ですが、それなりの難易度があり手応えもあるのでおすすめのゲームです。

2も出ているのでWindowsお持ちの方はぜひこちらも!

store.steampowered.com

第5位 テイルズオブヴェスペリア (プレイ時間 50時間)

それぞれの「正義」が動き出す(キャッチコピーそのまんま) テイルズオブヴェスペリア

ec.nintendo.com

store.steampowered.com

テイルズシリーズはちょいちょいやってたんですが、ヴェスペリアはやっていなくて、
Switchでリマスターが出て、いろんな友人におすすめされたのでやってみたら見事に時間が溶けました。
周回プレイをすると一生スプラトゥーンに戻れないと思って周回プレイはまだしていません()
テイルズシリーズは王道RPGという感じがしていて、たまにガッツリやろうと思ったときにやるとやっぱいいなと思います。
ストーリーは超雑に感想を述べるとThe 社会って感じがあって見ていて楽しかった印象でした。

ちなみに好きなセリフは
「お前は助かった命にいつか法をただすから今は我慢して死ねって言うのか!」と
「やはり犬の鼻は誤魔化せんか」です。

第4位 Kingdom Rushシリーズ (合計プレイ時間 51時間)

Kingdom Rush (プレイ時間 24時間)

store.steampowered.com

Kingdom Rush Frontiers (プレイ時間 17時間)

store.steampowered.com

Kingdom Rush Origins (プレイ時間 10時間)

store.steampowered.com

シリーズもののタワーディフェンスゲームです。
自分は大量に迫りくる大量の敵を自分がおいた仕掛けで止め続けるのが楽しすぎて、
タワーディフェンスゲームに目がないためにプレイ時間が伸びがちです。
4種類のタワーを適宜敵の進行ルートに置いて自分のゴールを守るそんなゲームです。
ガチホコバトルですね。

スマホにもあるみたいなのでぜひやってみてください

Kingdom Rush

Kingdom Rush

  • Ironhide S.A.
  • ゲーム
  • 無料
apps.apple.com

play.google.com

第3位 ゼルダの伝説ブレスオブザワイルド (プレイ時間 100時間)

100年待ったんだから1年くらいプレイしても大丈夫 ブレスオブザワイルド

www.nintendo.co.jp

リンク・・・リンク・・・と呼ばれて洞窟から外に出た先の景色
見えた全ての景色へと物理的に行くことができるオープンワールド
100年待ったんだから1年くらい大丈夫と思いながら広い大地を探し回ってしまう祠とその謎解きの楽しさ
当たらなければどうということはない。対決ライネル。
英傑たちのバラッドまで泣くんじゃない。
やってないヒトは絶対にプレイしましょう。

第2位 Dungeon Warfare (プレイ時間 147時間)

様々な罠でオリジナルのダンジョンを作ろう Dungeon Warfare

store.steampowered.com

おすすめランキングの実質1位のゼルダが終わったところでプレイ時間イーターのご紹介です。
Kingdom Rushシリーズに似ていますが、典型的なタワーディフェンスゲームです。
26種類のトラップをダンジョンに置き、大量の敵を処理するゲームです。
水や穴に敵を落としたり炎で焼き尽くしたり様々な組み合わせで楽しめるので時間が大量に消えます。
このゲームの悪いところは無限モードというものがあるところで、
文字通り無限に敵が出てきてそれを止めるダンジョンを作るのが楽しすぎるんですよね。
無限モード抜きでいろんなステージを遊ぶのも楽しいのでぜひ遊んでみてください。

スマホ版もあります。

ダンジョン・ウォーフェア

ダンジョン・ウォーフェア

  • Jin Man Kim
  • ゲーム
  • ¥370
apps.apple.com

play.google.com

第1位 Dungeon Warfare 2 (プレイ時間 186時間)

store.steampowered.com

2位の続編です。
周回プレイが可能になり、罠のレベルが1では50だったのが2では1000の代までいけるようになっていました。
めっちゃ強く鍛えた罠が大量の敵を潰しまくるのを見てるの最高に楽しくないですか?
見ろ!敵がゴミのようだ!ハッハッハッハ!ってなって最高です。
1とは違いアイテム集めの要素が加わったり、難易度調整のアイテムもありいろんな楽しみ方ができて良きです。
1ステージくらいならすぐ終わるしカジュアルに進められたりするので暇つぶしがてらやってみてください。

またもやスマホ版もあります。

ダンジョン・ウォーフェア2

ダンジョン・ウォーフェア2

  • Jin Man Kim
  • ゲーム
  • ¥610
apps.apple.com

play.google.com

その他

途中ちっちゃくコラム的にBGM、特にピアノがなー(オタク特有の早口)とか、
このゲームのストーリーがー(オタク特有のry)とか書こうと思ったんですが、
長くなりそうだったんでやめました。この辺の思い出話できる方は今度飲みに行ってください。

最後に

個人的おすすめの人生を削り取るゲームを紹介しました。
載せたゲームの合計時間は615時間でした。大分人生を削り取られている気がします。
でも、スプラトゥーンに疲れた日に少し気分転換してやるとリフレッシュできるし、
少し時間があいてからスプラトゥーンやるとやっぱ楽しいなってなるので、別のゲームをやるのもいいですね。

みなさんが大量に時間を費やしたゲームはなんですか?
おすすめがあったらTwitterや、はてブコメントとかでぜひ教えて下さい。

ではここでスプラトゥーン2のプレイ時間を見てみましょう。
3720時間(=155日)でした。
スプラトゥーン以外に削り取られた時間は1/6スプラトゥーンですね。
なーんだそうでもなかったわ。

明日はNullzakiさんの「スピナーはいいぞ」らしいです。
スピナー最近使っているので個人的にも楽しみです!

Splathon Ladder#3 にAjitoonで参加してきた

こんにちは、Dungeon Warfare2というゲームに時間を溶かしまくっています。
経験値稼ぎしてたらレベル5000(カンスト)いきました。
スマホ版もあるよ!
はい。

さて、Splathonというコミュニティで行われたLadder#3の振り返りです。
とりあえずの感想を伝えたいのですが、とにかく楽しかった!!!!!最高!!!!!!!

Splathonとは?

kawakubox.hatenablog.com

Ladderって?

Splathon Ladder #1 について

Ajitoon

※ 由来をほとんど話したことなかったけど、 Ajitoonは鯵ではなくて社内バーのAJITOを文字ってつけられています。
今回のAjitoonのLadder#3結果は、
6位 -> 8位 -> 11位 -> 11位 -> 8位 -> 5位で最終5位でした。やったね!
11位に行ったときは、あれ?Splathon10では何位でしたっけ?
みたいな気持ちになったりしていました。

イカしたメンバー

名前 ブキ ミドルリーグ関係
Aratoon マニュ系, スピナー系, その他 傍観者
Sakamotoon フデ系, クラネオ (コーチ) おっさんずラブ
Protoon カーボンローラー(デコ) (選手) 優勝のトライフォース
ごまちゃんさん 96ガロン (選手) 餃子日和

みんなミドルリーグに関わってるから試合も見てくれよな!

感想

試合の結果がメッセージでメンションしてどなたかに書いてもらうという状況からSlackコマンドになったりして、すごく便利になりました!
運営の皆さまありがとうございました!

日程のやりとりも慣れている方々ばかりだったのかかなり楽でした!
加えて先に言ってくださる方々ばかりだったので自分の社会人力を疑う日々でした😇
あとSlackで動いているコードがGithubとかにpublicに上がってるとPR上げたりもできるんでそのへんもうちょいpublicにされてると嬉しいなーという気持ちにもなりました。
Ladderのリーダーチャンネルもpublicにみんな見えてると他メンバーに進捗見えて嬉しくなります。

ここからは試合の感想

1試合目

挑戦:負け
防衛:負け

やばいノヴァの人がいないぞ!と思ったらやばいキャンプの人がいてめっちゃつらかったw
うちのチームキャンプに弱すぎるって気づけたので良かったです。
ボム無いからね。スプリンクラーとかビーコンじゃね。仕方ないね。

挑戦 [1-05] 06位 Ajitoon vs 05位 あなたのノヴァブラスターになりたい

www.youtube.com

防衛 [1-07] 08位 前夜祭 vs 06位 Ajitoon

www.youtube.com

2試合目

挑戦:負け
防衛:負け

このときは確かクアッド持ったら結構キル取れるなって思って、
調子に乗ってクアッドを試したけどやっぱりダメだったよみたいな感じになってしまっていました。

挑戦 [2-06] 08位 Ajitoon vs 05位 ぷんぷん丸

www.youtube.com

防衛 [2-09] 11位 ペンキぬり vs 08位 Ajitoon

www.youtube.com

3試合目

挑戦:負け
防衛:勝ち

2試合目に負けたペンキぬりとの再戦だーと思いつつ、
このときから確かスピナーつよつよマンのmi-kunさんが入ってきていて、
結構スピナーを持つようになっていた自分としてはここでお前を越えていく!!という気持ちで戦っていました。(勝てなかった
気持ちはこんな感じ

f:id:arata3da4:20190904021200j:plain
俺はお前を越えていく(越えられませんでした)

悔しい

悔しい!

悔しいぃ!!!!!!!!!!!!!!!!!

はい。
イカスに勝てなかった記憶が強い。
防衛は安定して勝利できてよかった。

挑戦 [3-09] 11位 Ajitoon vs 08位 ペンキぬり

www.youtube.com

防衛 [3-12] 14位 ハイカラスクエア駅前会計事務所 vs 11位 Ajitoon

www.youtube.com

4試合目

挑戦:勝ち
防衛:勝ち

個人的にはこのときあたりから自分が長射程持っても仕方ないなってなってきていた。
仕方ないなってのは、長射程武器がAjitoonというチームとの相性がそれほど良くないという気持ちになっていたりした感じですた
この後 #middlenai のプラベで比較的スパッタリーが刺さっていたので、短射程を持つ気持ちにここで変えるなどしました。

ぷんぷん丸はLadder#2とかでも対戦した相手で、全く勝てなかった印象だったので勝ててよかった。
短射程が多くて勢いがあるので、こちらも短射程並べて勢いで当たれたのが良かった気がします。

防衛は短射程だけで勝っていこうとしたらまだ早かった感じがあった。
ヤグラは射程なしでもいけるんじゃないかって個人的には思っていたけど、
ブラスターが強かったなぁ+スペシャルの合わせが強かった。

挑戦 [4-08] 11位 Ajitoon vs 08位 ぷんぷん丸

www.youtube.com

Aratoon視点

www.youtube.com

防衛 [4-10] 15位 NuRItaclesワカメ vs 11位 Ajitoon

www.youtube.com

5試合目

挑戦:勝ち
防衛:None

素直に勝てて嬉しかった。
ここは前のLadder#2で全員ミサイルで無限にミサイル撃たれ続けた思い出があり、
絶対に許さないかんなという気持ちを持っていました←
自分が後ろよりの武器を持っているときに仕事が全くできなくて沼っていたので申し訳なかった。
ホコとかのルールで相手が比較的重い編成に対してこっちは前よりな編成で勝てたので良かった。

挑戦 [5-06] 08位 Ajitoon vs 05位 NuRItaclesカスタードクリーム

www.youtube.com

防衛

なし

6試合目

挑戦:負け
防衛:勝ち

挑戦側、ひどかったw
防衛側、どうにか守りたくて守れてよかった。
挑戦は防衛で完全に力尽きてたのかなんか噛み合わないなって言ってたら終わってたw
噛み合ってても怪しいのに噛み合ってなかったらそらダメなのでちゃんと集中してこうなってなりました。
防衛は本来得意と思っていたホコでしっかり勝てたのでよかった。
これ勝てれば5位には居座れるから絶対勝ちたいって思っていたので本当に良かったです。

挑戦 [6-03] 05位 Ajitoon vs 03位 都立道玄坂高校イカ部(仮)

www.youtube.com

防衛 [6-06] 08位 NuRItaclesカスタードクリーム vs 05位 Ajitoon

www.youtube.com

さいごに

本当に楽しかった!
運営の方々も対戦相手の方々もありがとうございました!
次回のLadder#4もあったら参加していきたいと思います\\\ ٩( 'ω' )و ////